C++语言之set用法
下面简单总结下set容器的操作:1、set对象的定义和初始化set对象的定义和初始化方法包括:set<T> s;set<T> s(s1);set<T> s(b, e);其中,b和e分别为迭代器的开始和结束的标记。例如:#include <stdio.h>#include <
·
下面简单总结下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;
}
更多推荐
已为社区贡献2条内容
所有评论(0)