本文主要内容如下:
1.vector
1.1vector的定义
1.2vector容器内元素的访问
1.3vector常用函数
2.set
2.1 set的定义
2.2set容器内元素的访问
2.3set常用函数
3.string
3.1 string 的定义
3.2string容器内元素的访问
3.3string 常用函数
4.map
4.1 map的定义
4.2 map容器内元素的访问
4.3 map常用函数
5. queue
5.1 queue的定义
5.2 queue 容器内元素的访问
5.3 queue 常用函数
5.4 queue常见用途
6.priority_queue
6.1 priority_queue的定义
6.2 priority_queue 容器内元素的访问
6.3 priority_queue 常用函数
6.4 priority_queue内元素优先级的设置
7. stack
7.1stack的定义
7.2stack容器内元素的访问
8. pair
8.1 pair的定义
8.2 pair中元素的访问
8.3 pair常用函数
8.4 pair常见用途
9. algorithm头文件
1.vector
向量,长度可变的数组
头文件
#include<vector>
1.1vector的定义
vector<typename> name;
例如:
vector<int> name;
如果typename是vector
vector<vector<int>>name;
相当于二维数组
vector<typename> ArrayName[arraySize];
例如:
vector<int> vi[100];
1.2vector容器内元素的访问
(1)通过下标访问
vi[index];
(2)通过迭代器访问
vector<typename>::iterator it;
例如:
vector<int>::iterator it;
有上下文环境时,可以直接用 auto it=vi.begin();
例如:
for(auto it=vi.begin();it!=vi.end();it++)
printf(“%d”,*it);
注:vi.begin()和vi.end()左闭右开。
1.3vector常用函数
(1)push_back()
在末尾添加一个元素。
vi.push_back(i);
(2)pop_back()
删除一个尾元素。
vi.pop_back();
(3)size()
返回vector元素的个数,注意是unsigned类型。
vi.size();
(4)clear()
清空vector中所有的元素。
vi.clear();
(5)insert()
insert(it,x)在迭代器it前插入一个元素x。
vi: 1 2 3 4 5
vi.insert(vi.begin()+2,-1);
vi:1 2 -1 3 4 5
(6)erase()
1.删除单个元素
vi:5 6 7 8 9
vi.erase(vi.begin()+3)
vi:5 6 7 9
2.删除一个区间内的所有元素
erase[first,last); 左闭右开
vi:5 6 7 8 9
vi.erase(vi.begin()+1,vi.begin+4)
vi:5 9
2.set
集合,一个内部自动有序且不含重复元素的容器
头文件
#include<set>
2.1 set的定义
set<typename> name;
例如:
set<int> name;
set数组
set<typename>ArrayName[arraySize];
例如:
set<int> a[100];
2.2set容器内 元素的访问
set只能用迭代器访问
set<typename>::iterator it;
例如:
set<int>::iterator it;
set<int> st;
for(auto it=st.begin();it!=st.end();it++)
print(“%d”,*it);
st:2 3 5
set元素自动递增排序,且自动去除重复元素。
注意:不能用it<st.end();
除了vector和string容器外不能用*(it+i)
2.3set常用函数
(1)insert()
insert(x)将x插入set容器中,并自动递增排序和去重。
st.insert(x)
(2)find()
find(value)返回set中对应值为value的迭代器。
set<int>::iterator it = st.find(2);
(3)erase()
1.删除单个元素
st.erase(it); //it 为迭代器
st.erase(find(100));
st.erase(value),value 为所要删除元素的值。
st.erase(100);
2.删除区间内所有元素
erase[first,last); 左闭右开
st.erase(first,last);
st.erase(it,st.end());
(4)size()
返回set内元素的个数,unsigned类型
(5)clear()
清空set内所有的元素
3.string
字符串数组
3.1 string 的定义
string str=”abcd”;
3.2string容器内元素的访问
(1)通过下标访问
str[index];
输出str
cout<<str;
printf(“%s”,str.c_str());
(2)通过迭代器访问
string迭代器不需要参数
string::iterator it;
for(it=str.begin();it!=str.end();it++)
printf(“%c”,*it);
3.3string 常用函数
(1)operator+=
str1+=str2;
(2)compare operator
可直接使用 == ,!=,<=,<,>,>=比较大小,比较规则是字典序
(3)length()/size()
返回字符串长度,两者基本相同。
(4)insert()
1.insert(pos.string);
在pos号位置插入字符串string
string str1=”abcxyz”;
string str2=”opq”;
str1.insert(3,str2);
str1:abcopqxyz
2.insert(it,it2,it3); //it为原字符串待插入位置,it2,it3位待插入字符串首尾迭代器。[it2,it3) 左开右闭
string str1=”abcxyz”;
string str2=”opq”;
str1.insert(str1.begin()+3,str2.begin(),str2.end())
str1:abcopqxyz
(5)erase