1、常用C++STL--------集合

集合

一、集合中常见操作函数

1、集合的组成

集合是由不重复元素组成的,例如{1,2,3},就是由数据1、2、3组成的集合

2、集合头文件

#include<set>

using namespace std;

3、集合的定义

C++定义一个集合的语句是:set<T> s,定义了一个名为s,存储数据类型为T的集合,初始是空集合,我们可以定义set<int> a,set<string> aa等等

4、集合插入元素

set 使用insert向集合中插入一个新元素,如果元素已经存在,那么这个插入是无效的,因为集合中不存在重复元素;

#include<set>
using namespace std;
int main(){
set<string> country;      //{}
country.insert("china");     //{"china"}
country.insert("American");     //{"china","American"}
country.insert("china"); {"china","American"};      //“China”插入无效
return 0;
}

5、集合删除元素

集合set使用erase从集合中删除一个元素,如果集合中不存在这个元素,则不进行任何操作

#include<set>
using namespace std;
int main(){
set<string> country;      //{}
country.insert("china");     //{"china"}
country.insert("American");     //{"china","American"}
country.erase("china"); //{"American";
country.erase("china"); //删除“china”无效,因为集合中不存在这样的元素
return 0;
}

6、集合判断元素是否存在

C++如果你想判断一个元素是否在集合中存在,可以使用count函数,存在返回1,不存在返回0

#include<set>
using namespace std;
int main(){
set<string> country;      //{}
country.insert("china");     //{"china"}
country.insert("American");     //{"china","American"}
if(country.count("china")){   //判断“china”是否属于country
cout << "china belong to country " << endl;
}
return 0; }

7、集合迭代器

C++可以通过迭代器来访问各个元素,迭代器的写法是:set<T>::iterator it 定义了一个指向set<T>的迭代器it,其中T是任意数据类型,::iterator是固定类型

begin函数返回容器中起始元素的迭代值,end函数返回容器中尾部元素的迭代值

通过*操作可以获取指定的元素,通过++可以获取下一个元素,--可以获取上一个元素

注意:使用集合内部是一个按照从小到大有序的状态,所以迭代器在输出的时候是一个有序序列

#include<set>
#include<string>
#include<iostream>
using namespace std;
int main(){
set<string> country;    //{}
country.insert("china");   //{"china"}
country.insert("American"); // {"china","American"}
for(set<string>::iterator it = country.begin();it != country.end();it++){
cout << *it << endl;    //通过迭代器输出对象
}
return 0;
}

8、清空集合内存和元素

C++中调用clear()函数就可以清空集合元素,同时清空set占用的内存

C++中调用size()函数就可以获取集合元素的个数

 

上一篇:exchange -power shell 笔记


下一篇:聚类算法用于降维,KMeans的矢量量化应用