STL
STL是标准模板库。
vector
本质上就是一个数组,但是它比数组更加地好用,提供了很多实用的接口。
1  | // 定义一个vector  | 
1  | // 遍历  | 
1  | // 插入 我们需要用到迭代器  | 
emplace_back()
在使用push_back函数往容器中增加新元素时,必须要有一个该对象的实例才行,而emplace_back可以不用,它可以直接传入对象的构造函数参数直接进行构造,减少一次拷贝和赋值操作。
1  | class stu_info {  | 
1  | vector<stu_info> v;  | 
set
set是集合,是一个内部自动有序且不含重复元素的容器。
set的定义:
1  | set<int> st; // 保存int类型的set  | 
set只能通过迭代器访问:
1  | set<int>::iterator it;  | 
插入:
1  | int x = 1  | 
查找:
1  | set<iterator>::iterator it = st.find(1); // 查找1,返回迭代器  | 
删除:
1  | st.erase(it);// it为要删除元素的迭代器  | 
元素个数:
1  | cout<<st.size()<<endl;  | 
清空元素:
1  | st.clear();  | 
emplace()
当使用插入时,我们创建一个对象,然后将其插入到多集中。使用emplace(),该对象就地构建。
1  | // C++ code to demonstrate difference between  | 
swap()
1  | s1.swap(s2); //交换两集合  | 
string
可以通过下标访问和通过迭代器访问:
1  | string str = "abcd";  | 
1  | // +号可以连接字符串  | 
字符串长度
1  | printf("%d %d\n", str.length(), str.size()); //两个都一样  | 
插入:
1  | int pos;  | 
删除:
1  | // 通过迭代器删除单个元素  | 
清空:
1  | str.clear();  | 
子串:
1  | int pos=2;  | 
查找:
1  | string str2;  | 
替换:
1  | int pos = 3;  | 
map
map是映射,定义了从一个key到value的映射,其中map中保存的所有key, value对中,key不能重复,但是value可以重复
1  | map<typename1, typename2> mp; // 从typename1类型到typename2类型的映射  | 
1  | map<string, int> mp; // 从string类型的key到int类型的value的映射  | 
访问:
1  | // 下标访问  | 
查找:
1  | // find返回对应key value对的迭代器  | 
删除:
1  | // 迭代器删除单个元素  | 
map长度
1  | // size函数获取mp的key value对个数  | 
priority_queue
https://www.cnblogs.com/yalphait/articles/8889221.html
		














