STL - 容器 - Set
Set根据特定排序准则,自动将元素排序。
Set不允许元素重复。
一些常规操作:
SetTest.cpp
#include <iostream> #include <set> #include <algorithm> #include <iterator> #include <functional> #include "SetTest.h"using namespace std;void SetTest::operationDemo() {// type of the collection:// - no duplicates// - elements are integral values// - descending orderset<int, greater<int>> coll1;// insert elements in random order using different member functionscoll1.insert({ 4, 3, 5, 1, 6, 2 });coll1.insert(5);// print all elementsfor (int elem : coll1) {cout << elem << ' ';}cout << endl;// insert 4 again and process return valueauto status = coll1.insert(4);if (status.second) {cout << "4 inserted as element "<< distance(coll1.begin(), status.first) + 1 << endl;}else {cout << "4 already exists" << endl;}// assign elements to another set with ascending orderset<int> coll2(coll1.cbegin(), coll1.cend());// print all elements of the copy using stream iteratorscopy(coll2.cbegin(), coll2.cend(), ostream_iterator<int>(cout, " "));cout << endl;// remove all elements up to element with value 3coll2.erase(coll2.begin(), coll2.find(3));// remove all elements with value 3int num;num = coll2.erase(3);cout << num << " element(s) removed" << endl;// print all elementscopy(coll2.cbegin(), coll2.cend(), ostream_iterator<int>(cout, " "));cout << endl; }void SetTest::run() {printStart("operationDemo()");operationDemo();printEnd("operationDemo()"); }
运行结果:
---------------- operationDemo(): Run Start ----------------
6 5 4 3 2 1
4 already exists
1 2 3 4 5 6
1 element(s) removed
4 5 6
---------------- operationDemo(): Run End ----------------
STL - 容器 - Set相关推荐
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——遍历和查找
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请指明出于breakso ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除的性能.(转载请指明出 ...
- STL容器存储的内容动态分配情况下的内存管理
主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirO ...
- STL容器是否是线程安全的
转载http://blog.csdn.net/zdl1016/article/details/5941330 STL的线程安全. 说一些关于stl容器的线程安全相关的话题. 一般说来,stl对于多线程 ...
- gdb 查看 stl容器 zz
将下面文件作为 ~/.gdbinit的内容, 或者在已有的~/.gdbinit中source下面的文件, 然后可以以下列方式查看stl容器的数据: 容器类型 GDB 命令 std::vector&l ...
- 标准非STL容器 : bitset
1. 概念 什么是"标准非STL容器"?标准非STL容器是指"可以认为它们是容器,但是他们并不满足STL容器的所有要求".前文提到的容器适配器stack.que ...
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
Vectors 包含着一系列连续存储的元素,其行为和数组类似.访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线 ...
最新文章
- 第三百一十九节,Django框架,文件上传
- jQuery调用WebService返回JSON数据
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
- [机器学习]关联挖掘算法Apriori和FP-Growth以及基于Spark 实例
- 研磨设计模式——桥接模式
- devops之 --- git可视化工具sourcetree
- 看逐浪CMS技术小哥做SVG动画(附使用Bodymovin和Lottie将Adobe After Effects(AE)程式转为 HTML5/Android/iOS原生的动画全过程-即AE转svg\c
- 机器学习如何帮助Caesars大涨邮件绩效
- 如何查看自己windows电脑的IP地址
- python xgboost建模过程_机器学习——XGBoost大杀器,XGBoost模型原理,XGBoost参数含义...
- 【第三方互联】14、Github授权第三方登录
- 基于raft共识搭建的Fabric1.4网络环境
- 如何通过域名访问服务器文件,如何通过域名访问云服务器
- NDIS Filter Drivers指南
- web 页面的提交方式
- 一个显示器分屏显示两个画面_测了两个爆款游戏显示器,结果我发现他们都有坑...
- GBase 8a 数据分布式存储
- 全志JAVA_全志R11处理器参数详细说明
- c语言既适合编写也适合编写应用软件,清华大学出版社-图书前言
- (JQuery学习笔记)我对jQuery选择器的总结