您的位置:首页 > 编程语言 > C语言/C++

C++ STL 容器整理

2016-03-11 10:16 453 查看

vector

创建vector

vector< type >vec;//声明一个空向量

vector< type >vec(n);//声明一个初始大小为n的的向量

vector< type >vec(vec1);//以复制一个vec1向量

插入元素

push_back(a)//在向量的尾部插入元素a

insert(vec.begin()+i,a)//在向量的第i个位置插入元素a

删除元素

clear()//清空向量

erase(vec.begin()+i)//删除第i个元素

erase(vec.begin()+i,vec.begin()+j)//删除区间[i,j)上的元素

判断是否为空

empty()//为空返回true,否则返回false

size()//返回向量中元素的个数

迭代器的使用

#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int>vec(n);
for(int i = 0;i < vec.size();i++){
vec[i] = i;
}
vector<int>::iterator iter;
for(iter = vec.begin();iter != vec.end();iter++){
cout<<*iter<<" ";
}
return 0;
}


map

创建map

map< key_type,value_type >mp;

插入元素

mp[key] = value;

mp.insert(pair< key_type,value_type >(key,value));

查找元素

find(a)//寻找key值为a的元素,找到则返回指向该元素的迭代器

删除元素

erase(iter)//删除迭代器iter指向的元素

clear()//删除所有元素

判断是否为空

empty()//为空返回true,否则返回false

size()//返回map容器中键值对的个数

迭代器使用

#include<iostream>
#include<map>
using namespace std;
int main(){
map<int,int>mp;
for(int i = 0;i < 10;i++){
mp.insert(pair<int,int>(i,i+1));
}
map<int,int>::iterator iter;
for(iter = mp.begin(),iter != mp.end();iter++){
cout<<iter->first<<" "<<iter->second<<endl;
}
return 0;
}


string

创建string

string s;//声明一个string对象

string s1(s2);//复制一个string对象

string s(n,’c’);//用n个’c’字符创建一个string对象

改变string

s = s1 + s2;//拼接两个字符串

s = s.substr(i,j);//截取区间[i,j)上的字符串

s.insert(i,”123”);//将字符串”123”插入到i位置

s.erase(i);//删除i位置的字符

s.erase(i,j);//删除区间[i,j)上的字符串

s.append(a);//将a拼接到s后面

reverse(s.begin(),s.end());//将字符串反转

字符串查找

find(a);//返回第一次找到a的下标

find_first_not_of(a);//返回第一个不是a的下标

find_first_of(a);//返回第一个是a的下标

find_last_not_of(a);//返回最后一个不是a的下标

find_last_of(a);//返回最后一个a的下标

length();//返回字符串的长度

set

创建set

set< type >myset;

添加元素

insert(a)

删除元素

erase(a);//删除值为a的元素

clear();//清空元素

判断是否为空

empty();//为空返回true,否则返回false;

size();//返回set容器中元素的个数

迭代器的使用

#include<iostream>
#include<set>
using namespace std;
int main(){
set<int>myset;
for(int i = 0;i < 10;i++){
myset.insert(i);
}
set<int>::iterator iter;
for(iter = myset.begin();iter != myset.end();iter++){
cout<<*iter<<endl;
}
return;
}


queue

创建队列

queue< int >que;

入队

push(a);

出队

pop()

访问队首元素

front()

访问队尾元素

back()

查看队列大小

size()

empty()

stack

声明栈

stack sta;

入栈

push()

出栈

pop()

访问栈顶元素

top()

查看栈内元素个数

size()

empty()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: