- vector 的定义
vectorname; ps: 如果 typename 是一个STL容器时定义时要在>>符号之间加上空格 -->vector >name;
- vector容器元素的访问
* vectorvi; * 通过下标访问 vi[index]; * 通过迭代器访问· vector ::iterator it; 例如: #include #include #include using namespace std; int main(){ vector vi; for(int i=1;i<=5;i++) vi.push_back(i); vector ::iterator it=vi.begin(); //vi.begin()取vi的首地址 //vi.end()取尾元素的下一个地址,作为迭代器末尾的标志,不储存任何元素 for(vector ::iterator it=vi.begin();it!=vi.end();it++){ printf("%d ",*it); //TODO } }
- vector常用函数
1.push_back()在vector末尾添加一个元素
2.pop_back()在vector末尾删除一个元素
3.size()返回vector中储存的元素个数
4.clear()清除所有元素
5.insert(it,i)用来向任意迭代器it处插入一个元素i
6.erase():
用法1:
删除单个元素
erase(it)
用法2:
删除一个区间的所有元素
erase(first,last)即删除[first,last)间的元素
例如:
#include
#include
#include
using namespace std;
int main(){
vectorvi;
for(int i=1;i<=5;i++)
vi.push_back(i);
vector::iterator it=vi.begin();
//vi.begin()取vi的首地址
//vi.end()取尾元素的下一个地址,作为迭代器末尾的标志,不储存任何元素
printf("函数操作前n");
for(int i=0;i<5;i++)
printf("%d ",*(it+i));
//vi.insert(vi.begin(),10);//vector第一个地方插入一个元素
printf("n");
// vi.erase(vi.begin()+3);//删除第4个元素
//vi.erase(vi.begin(),vi.begin()+3);//删除vi[0],vi[1],vi[2]
printf("函数操作后n");
for(vector::iterator it=vi.begin();it!=vi.end();it++){
printf("%d ",*it);
//TODO
}
}
2.set(set内元素自动排序,且去除重复元素)
- set数组定义
使用头文件#include
seta[100];
setst;
- set数组的访问
只能通过迭代器访问
set::iterator it;
- set的常用函数
1.insert() 2.find(value)返回set中对应值为value的迭代器 3.erase()的用法: * erase(it) it为所需要的删除元素的迭代器 * erase(value) value为所需删除的元素 * erase(first,last)删除一个区间内所有的元素 4.size() 5.clear() 例子: #include3. string#include using namespace std; int main(){ set st; st.insert(100); st.insert(3); st.insert(5); st.insert(22); set ::iterator it=st.find(5); printf("%dn",*it); }
- string的定义
头文件#include
-
string中的内容访问
- 通过下标
- 通过迭代器
#include
#include using namespace std; int main(){ string str="abcd"; for(string::iterator it=str.begin();it!=str.end();it++){ printf("%c",*it); //TODO } } -
string常用函数
1.operator+= 2.campare operator 3.length()/size() 4.insert()用法 insert(pos,str)在pos号位置后插入元素 insert(it,it2,it3)it为原字符串的与插入位置,it2和it3为待插字符串的首尾迭代器 #include#include #include using namespace std; int main(){ string str="abcd"; for(string::iterator it=str.begin();it!=str.end();it++){ printf("%c",*it); //TODO } printf("n"); string str2="易助平"; //str.insert(2,str2);//在第二个元素之后插入字符串 str.insert(str.begin()+1,str2.begin(),str2.end()); cout< #include #include using namespace std; int main(){ string str="Thank you for your smile"; string str2="you"; string str3="me"; if(str.find(str2)!=string::npos){ cout< #include using namespace std; int main(){ string str="Maybe you will turn around."; string str2="will not"; string str3="surely"; cout< 4.map(可以将任何基本类型映射到任何基本类型)
- map的定义
map
mp; typename1为映射前数据类型,typename2为映射后数据类型
- map容器内元素的访问
1.通过下标 2.通过迭代 输出按键的从小到大的顺序排列 #include
- map常用函数解析·
1.find() 2.erase 3.size() 4.clear()5.queue
- 定义
- 访问
1.通过front()访问首元素,back()访问尾元素
- 函数
1.push() 2.front()和back() 3.empty() 4.pop() 5.size()6. stack1.top() 2.empty() 3.push() 4.pop() 5.size()7. priority_queue 8.pair 9. algorithm下的常用函数1. max(),min(),abs() 2.swap(x,y)交换x与y的值 3.reverse(it,it2)可以将数组指针在[it,it2)之间的元素或容器的迭代器在[it,it2)范围内的元素进行反转 #include #include#include using namespace std; int main(){ int a[10]={10,11,12,13,14,15}; reverse(a,a+4); for(int i=0;i<6;i++){ //TODO printf("%d ",a[i]); } string str="abcdefg"; reverse(str.begin()+1,str.begin()+6);//将str[1]~str[6]反转 cout< using namespace std; int main(){ int a[10]={1,2,3}; do{ printf("%d%d%dn",a[0],a[1],a[2]); }while(next_permutation(a,a+3)); } 5.fill() 可以将数组或容器中的某一段区间赋为某个相同的值 6.sort() sort(首地址,尾地址的下一个地址,比较函数) Ps:前两个参数必填,比较函数不写,默认对前面的区间进行递增排序 #include #include using namespace std; int main(){ int a[10]={10,-1,2,34,21,12}; sort(a,a+6);//将a[0]~a[5]从小到大排序 for(int i=0;i<6;i++){ printf("%d ",a[i]); } return 0; }#include #include using namespace std; bool cmp(int a,int b){ return a>b; }//cmp bool cmp(char a,char b){ return a>b; } int main(){ int a[10]={10,-1,2,34,21,12}; sort(a,a+6,cmp);//将a[0]~a[5]从小到大排序 for(int i=0;i<6;i++){ printf("%d ",a[i]); } printf("n"); char c[]={'T','W','A','K'}; sort(c,c+4);//按字典序从小到大排序 for(int i=0;i<4;i++){ //TODO printf("%c ",c[i]); } return 0; } 7.lower_bound()和 upper_bound() lower_bound(first,last,val)返回第一个大于等于val的位置,数组返回指针,容器返回迭代器 upper_bound(first,last,val)返回第一个小于等于val的位置



