C/C++——set的基本操作总结
来源:互联网 发布:js动态添加a标签 编辑:程序博客网 时间:2024/04/30 10:53
set容器中只能存储键,是单纯的键的集合,其中键是不能重复的。
set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。
下面简单总结下set容器的操作:
1、set对象的定义和初始化
set对象的定义和初始化方法包括:
set<T> s;
set<T> s(s1);
set<T> s(b, e);
其中,b和e分别为迭代器的开始和结束的标记。
例如:
#include <stdio.h>#include <vector>#include <set>using namespace std;int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); v.push_back(i); } set<int> s(v.begin(), v.end()); printf("%d\n", v.size()); printf("%d\n", s.size()); return 0;}
注意:键是不能重复的。
2、set中数据的插入
与map不同,set中数据只能通过insert()
函数进行插入。
例如:
#include <stdio.h>#include <vector>#include <set>using namespace std;int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); v.push_back(i); } set<int> s; s.insert(v.begin(), v.end()); set<int>::iterator it; for (it = s.begin(); it != s.end(); it++){ printf("%d\t", *it); } printf("\n"); s.insert(10); for (it = s.begin(); it != s.end(); it++){ printf("%d\t", *it); } printf("\n"); return 0;}
3、从set中查找和读取元素
从set中查找同样可以使用count()
函数和find()
函数,两者的区别在之前的map中已经总结。
例如:
#include <stdio.h>#include <vector>#include <set>using namespace std;int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); v.push_back(i); } set<int> s; s.insert(v.begin(), v.end()); set<int>::iterator it; for (it = s.begin(); it != s.end(); it++){ printf("%d\t", *it); } printf("\n"); printf("%d\n", s.count(9)); printf("%d\n", *(s.find(9))); return 0;}
4、从set中删除元素
从set中删除元素使用到的函数是erase()
函数,主要有以下的几种形式:
erase(k);
erase(p);
erase(b, e);
其中,p表示的迭代器指向的元素,b和e分别是迭代器的开始和结束。
例如:
#include <stdio.h>#include <vector>#include <set>using namespace std;int main(){ vector<int> v; for (int i = 0; i < 10; i++){ v.push_back(i); v.push_back(i); } set<int> s(v.begin(), v.end()); set<int>::iterator it; for (it = s.begin(); it != s.end(); it++){ if (*it == 5){ break; } } s.erase(it, s.end()); set<int>::iterator it_1; for (it_1 = s.begin(); it_1 != s.end(); it_1++){ printf("%d\t", *it_1); } printf("\n"); return 0;}
0 0
- C/C++——set的基本操作总结
- C/C++基础——set的基本操作总结
- C++—map的基本操作总结
- C/C++——vector的基本操作总结
- C/C++——map的基本操作总结
- C/C++ set容器的基本操作
- C/C++ set容器的基本操作
- C/C++基础——map的基本操作总结
- C/C++基础——vector的基本操作总结
- C/C++基础:set的基本操作总结及注意细节问题
- 【c++】vector容器&set容器的基本操作
- c/c++课堂笔记——字符串的基本操作
- 数据结构—单链表的部分基本操作(C语言)
- C#—窗体的基本操作(实验8.1、8.2)
- 第一篇博客—c语言单链表的基本操作
- C的大数基本操作
- C基本的读写操作
- 【C++】单链表的基本操作
- ipnone 屏幕宽高比
- OkHttp简单用法
- 四:深入Nginx之事件和连接 (之一)
- mysql mysqli pdo区别
- android事件拦截处理机制---详解 onInterceptTouchEven onTouchEvent
- C/C++——set的基本操作总结
- Google推荐的图片加载库Glide介绍
- 二维码扫描
- 使用ASTView分析代码调用关系分析的具体应用
- 飞控中使用到数学函数
- CTS 源码分析(一)--CTS概况
- Emeditor ,果然很强大!
- String StringBuffer和StringBuilder异同
- QT5中文显示乱码解决方法