C/C++ set容器的基本操作
2016-11-21 17:39
190 查看
用到了c++里STL库里面的一个容器---set容器
集和多集(set 和multiset 容器类)
#include <set>
一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。
集和多集的区别是:set支持唯一键值,set中的值都是特定的,而且只出现一次;而multiset中可以出现副本键,同一值可以出现多次
set容器的常用方法:
示例:
小结:插入3之后虽然插入了一个1,但是我们发现set中最后一个值仍然是3哈,这就是set 。还要注意begin() 和 end()函数是不检查set是否为空的,使用前最好使用empty()检验一下set是否为空.
count() 用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
示例代码:
运行结果:
find() ,返回给定值值得定位器,如果没找到则返回end()。
示例代码:
输出:
--------------另附一篇stl的vector的使用文章
STL之vector的使用
集和多集(set 和multiset 容器类)
#include <set>
一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。
集和多集的区别是:set支持唯一键值,set中的值都是特定的,而且只出现一次;而multiset中可以出现副本键,同一值可以出现多次
set容器的常用方法:
begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true(真) end() 返回指向最后一个元素之后的迭代器,不是最后一个元素 equal_range() 返回集合中与给定值相等的上下限的两个迭代器 erase() 删除集合中的元素 find() 返回一个指向被查找到元素的迭代器 get_allocator() 返回集合的分配器 insert() 在集合中插入元素 lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器 key_comp() 返回一个用于元素间值比较的函数 max_size() 返回集合能容纳的元素的最大限值 rbegin() 返回指向集合中最后一个元素的反向迭代器 rend() 返回指向集合中第一个元素的反向迭代器 size() 集合中元素的数目 swap() 交换两个集合变量 upper_bound() 返回大于某个值元素的迭代器 value_comp() 返回一个用于比较元素间的值的函数
示例:
#include <iostream> #include <set> using namespace std; int main() { set<int> s; s.insert(1); s.insert(2); s.insert(3); s.insert(1); cout<<"set 的 size 值为 :"<<s.size()<<endl; cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl; cout<<"set 中的第一个元素是 :"<<*s.begin()<<endl; cout<<"set 中的最后一个元素是:"<<*s.end()<<endl; s.clear(); if(s.empty()) { cout<<"set 为空 !!!"<<endl; } cout<<"set 的 size 值为 :"<<s.size()<<endl; cout<<"set 的 maxsize的值为 :"<<s.max_size()<<endl; return 0; }运行结果:
小结:插入3之后虽然插入了一个1,但是我们发现set中最后一个值仍然是3哈,这就是set 。还要注意begin() 和 end()函数是不检查set是否为空的,使用前最好使用empty()检验一下set是否为空.
count() 用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
示例代码:
#include <iostream> #include <set> using namespace std; int main() { set<int> s; s.insert(1); s.insert(2); s.insert(3); s.insert(1); cout<<"set 中 1 出现的次数是 :"<<s.count(1)<<endl; cout<<"set 中 4 出现的次数是 :"<<s.count(4)<<endl; return 0; }
运行结果:
find() ,返回给定值值得定位器,如果没找到则返回end()。
示例代码:
#include <iostream> #include <set> using namespace std; int main() { int a[] = {1,2,3}; set<int> s(a,a+3); set<int>::iterator iter; if((iter = s.find(2)) != s.end()) { cout<<*iter<<endl; } return 0; }
输出:
2
--------------另附一篇stl的vector的使用文章
STL之vector的使用
相关文章推荐
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- 【c++】vector容器&set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- 详细的单链表基本操作C/C++实现
- c++ 实现双链表基本操作
- c++ 单链表基本操作
- C++map的基本操作和使用
- C++控制台操作(基本操作的代码)