关于STL的一些理解

1.

  集合set。定义:

set<int> s1; 类型可选。

se.begin() 返回指向第一个元素的迭代器
se.clear() 清除所有元素  //常用
se.count() 返回某个值元素的个数  //常用,一般用来查这个元素在不在集合中
se.empty() 如果集合为空,返回true
se.end() 返回指向最后一个元素之后的迭代器,不是最后一个元素
se.erase() 删除集合中的元素  //常用
se.find() 返回一个指向被查找到元素的迭代器
se.insert() 在集合中插入元素  //常用
se.max_size() 返回集合能容纳的元素的最大限值
se.size() 集合中元素的数目
se.swap() 交换两个集合变量

遍历用到迭代器。

for (set<int>::iterator it = s.begin(); it != s.end(); ++it) {

cout << *it << endl;

}

2.

map

定义   map< string , int > m;

以一个string形式的变量指向一个int型的变量(个人理解)

 map<string,string> aaa;

aaa [ b ] =a;

3.

queue的用法

queue<int> a;

a.push   push即在队尾插入一个元素

a.pop  将队列中最靠前位置的元素拿掉,是没有返回值的void函数

a.size  返回队列中元素的个数,返回值类型为unsigned int

a.empty  判断队列是否为空的,如果为空则返回true

a.front   返回值为队列中的第一个元素,也就是最早、最先进入队列的元素。注意这里只是返回最早进入的元素,并没有把它剔除出队列。

a.back   返回队列中最后一个元素,也就是最晚进去的元素。

4.

vector

vec.begin()//指向迭代器中第一个元素。 
vec.end()//指向迭代器中末端元素的下一个,指向一个不存在元素。		
vec.push_back(elem)		//在尾部加入一个数据。
vec.pop_back()			//删除最后一个数据。
vec.capacity()	//vector可用空间的大小。
vec.size()//返回容器中数据个数。
vec.empty()	//判断容器是否为空。
vec.front()		//传回第一个数据。
vec.back()	//传回最后一个数据,不检查这个数据是否存在。
vec.at(index)	//传回索引idx所指的数据,如果idx越界,抛出out_of_range。
vec.clear()	//移除容器中所有数据。
vec.erase(iterator)	//删除pos位置的数据,传回下一个数据的位置。
vec.erase(begin,end)	//删除[beg,end)区间的数据,传回下一个数据的位置。注意:begin和end为iterator
vec.insert(position,elem)	//在pos位置插入一个elem拷贝,传回新数据位置。
vec.insert(position,n,elem)	//在pos位置插入n个elem数据,无返回值。
vec.insert(position,begin,end)	//在pos位置插入在[beg,end)区间的数据,无返回值。

猜你喜欢

转载自blog.csdn.net/qq_41382647/article/details/81148991