16.c+-std::Set(整列集合)
#include<set>
//
std::set<int> set;
すべてのSTLコンテナと同様にstd::setの基本的な使用はこのように簡単で、高度に見える機能を使用しても難しくありません.STLは設計されたデバッグで使用可能なライブラリです.
次に、簡単な使用例を示します.これらは非常に簡単です.まず、その「ソート」の使い方を紹介します.
include<set>
int array[5]={12, 34, 10, 98, 3};
const size_t array_size=sizeof(array)/sizeof(array[0]);
std::set<int> set;
for(size_t i=0; i<array_size; ++i)
{
// ,
set.insert(array[i]);
}
// ,
std::set<int>::const_iterator b=set.begin();
for(; b!=set.end(); ++b)
{
std::cout << *b << '
';
}
一般意識では、1つの集合にはあまり操作がなく、STLではstd::setもあまり操作がなく、そのソートは自動的で、1つの要素を挿入したり、1つの要素を削除したり、反復器を持ったりすることができます.次の簡単な例はstd::set自体の多くの特性を含む:
#include<set>
int array[5]={12, 34, 10, 98, 3};
const size_t array_size=sizeof(array)/sizeof(array[0]);
//
std::set<int> set(array, array+array_size);
//
set.insert(23);
//
set.erase(10);
//
// ,n 0
//
size_t n=set.erase(11);
// ,
std::set<int>::const_iterator result=set.find(98);
std::set<int> other;
//
std::swap(set, other);
//
other.clear();
eg:
#include <iostream>
#include <set>
#include <signal.h>
using namespace std;
int main(void)
{
std::set<int> _signals;
_signals.insert(SIGTERM);
_signals.insert(SIGINT);
_signals.insert(SIGCHLD);
for( std::set<int>::const_iterator i = _signals.begin(); i != _signals.end(); ++i)
cout << *i << endl;
_signals.clear();
return 0;
}