C/C++——set的基本操作总结
Posted kyledeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++——set的基本操作总结相关的知识,希望对你有一定的参考价值。
转自:https://blog.csdn.net/google19890102/article/details/51720988
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
", v.size());
printf("%d
", 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 ", *it);
}
printf("
");
s.insert(10);
for (it = s.begin(); it != s.end(); it++){
printf("%d ", *it);
}
printf("
");
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 ", *it_1);
}
printf("
");
return 0;
}
以上是关于C/C++——set的基本操作总结的主要内容,如果未能解决你的问题,请参考以下文章