程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++標准庫:std_set作為一個有序集合

C++標准庫:std_set作為一個有序集合

編輯:C++入門知識

摘要:std::set作為標准庫的一個關聯容器,實現內部元素進行了排序,使用這特性可以對一組元素進行插入排序。std::set最初的設計是完成數學中“集合”的概念,它提供的接口也是如此。本文簡單地介紹一下這一個標准庫容器。
為了使用std::set,我只需要如下:
#include
//定義一個整型數據的集合
std::set<</span>int> set;
如同所有的STL容器一樣,std::set的基本的使用是如此簡單,即使使用看起來很高級的功能也並不難,STL是經過設計的調試可用的庫。
下面我會展示一些簡單的使用示例,這些是示例非常簡單,首先介紹那個“排序”的用法:
#include
int array[5]={12, 34, 10, 98, 3};
const size_t array_size=sizeof(array)/sizeof(array[0]);
std::set<</span>int> set;
for(size_t i=0; i<</span>array_size; ++i)
{
        //把數據插入集合,數據自動排序
        set.insert(array[i]);
}
//此時已經排序了,下面依次輸出
std::set<</span>int>::const_iterator b=set.begin();
for(; b!=set.end(); ++b)
{
        std::cout << *b << '\n';
}
在一般意識中,一個集合並沒有太多的操作,所有在STL中,std::set也沒有太多操作,它的排序是自動的,我們可以插入一個元素,也可以刪除一個元素,也有迭代器。下面簡單的示例包括std::set自身的多數的特性:
#include
int array[5]={12, 34, 10, 98, 3};
const size_t array_size=sizeof(array)/sizeof(array[0]);
//一個新的定義容器的方法
std::set<</span>int> set(array, array+array_size);
//插入一個元素
set.insert(23);
//移除一個元素
set.erase(10);
//移除一個元素不在集合中的元素
//此時什麼也不做,n作為返回值將會是0
//指明沒有元素移除
size_t n=set.erase(11);
//www.software8.co
//使用迭代器,找到一個元素
std::set<</span>int>::const_iterator result=set.find(98);
std::set<</span>int> other;
//交換兩個集合的內容
std::swap(set, other);
//清楚所有的內容
other.clear();
 
eg:
#include
#include
#include
using namespace std;
int main(void)
{
 std::set _signals;
 _signals.insert(SIGTERM);
 _signals.insert(SIGINT);
 _signals.insert(SIGCHLD);
 for( std::set::const_iterator i = _signals.begin(); i != _signals.end(); ++i)
  cout << *i << endl;
 _signals.clear();
 return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved