16.c+-std::Set(整列集合)

1715 ワード

#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;
}