c++中vector、queue、stack常用的函数

一、vector

1.push_back(),在vector后面添加元素

vector<int>v;
v.push_back(3);
v.push_back();

2.pop_back(),删除vector的最后一个元素

v.pop_back();

3.size(),返回vector的长度

v.size();

4.clear(),清空vector

v.clear();

5.resize(),重新定义vector的长度

用法一:第一个参数是设置vector的长度为10,第二个参数是将数组里面的元素都赋值为2。

v.resize(10,2);

用法二:只有一个参数:vector的长度。
如果之前的vector的长度小于10,则后面补齐到10,之前的元素保持不变,后面的元素为0。
如果之前的vector的长度大于10,则第10个元素之后的元素都删除掉。

v.resize(10);

6.erase()

用法一:删除一个元素

v.erase(v.begin()+2);//删除下标为2的元素

用法二:删除一整个区间中的元素

v.erase(v.begin(),v.begin()+2);//删除前两个元素,下标为2的元素没有删除。

7.insert(),在vector的某个位置插入一个元素

第一个参数为迭代器指代的位置,第二个参数为插入的元素。

v.insert(v.begin()+1,10);//在下标为1的位置插入10。

二、stack

stack是栈,先进后出。

1.定义

stack<int>s;

2.push(),将元素压入栈顶

s.push(2);

3.pop(),将栈顶元素弹出

s.pop();

4.top(),返回栈顶元素

int a=s.top();

5.size(),返回栈中元素的数目

int len=s.size();

6.empty(),判断栈是否为空,如果是空,返回true.

s.empty();//常用来做判定条件

三、queue

queue是队列,先进先出。

1.定义

queue<int>q;

2.push(),将元素添加进队尾

q.push(1);

3.pop(),将队头的元素弹出

q.pop();

4.front(),返回队首元素

int a=q.front();

5.back(),返回队尾元素

int b=q.back();

6.size(),返回队长

int len=q.size();

7.empty(),判断队是否是空的

q.empty();//常用作判定条件

四、string

1.string的定义

string a="abc";

这里就定义了一个“abc”的字符串。

2.length(),返回字符串的长度

cout<<a.length()<<endl;

a的长度为3

3.compare(),将字符串与另外一个字符串进行比较大小,如果比后面的字符串大,则返回1,相等则返回0,比后面的字符串小,则返回-1.

string a="abc";
string b="b";
string c="ab";
string d="abc";
cout<<a.compare(b)<<endl;//返回-1
cout<<a.compare(c)<<endl;//返回1
cout<<a.compare(d)<<endl;返回0

compare函数有两个参数,如果比后面的字符串的ASCII码值大,则返回1,相等则返回0,比后面的字符串的ASCII码值小则返回-1.

4.substr(),截取字符串

string c="abcdefg";
cout<<c.substr(2,3)<<endl;//截取字符串c从下标2开始长度为3的字符串。所以这里返回cde

这里要注意第二个参数是指截取的字符串长度,而不是截取的字符串末尾位置。

5.sort(),对字符串内部的字符进行排序

string c="cdeab";
sort(c.begin(),c.end());
cout<<c<<endl;//c就变成了“abcde”

将字符串内的字符按照ASCII值大小从小到大进行排序。

6.insert(),在字符串中指定位置插入字符

string a="abcde";
a.insert(a.begin()+2,'p');
cout<<a<<endl;//所以a变成“abpcde”

7.append(),在字符串后面添加字符串

string a="abc";
a.append("def");
cout<<a<<endl;//所以a变成了abcdef

8.erase(),删除指定位置的字符

string a="abcde";
a.erase(a.begin()+2);
cout<<a<<endl;//这里a就变成了abde
string a="abcde";
a.erase(a.begin()+2,a.begin()+3);
cout<<a<<endl;//这里a变成了abde,也就是删除了下标为[2,3)的元素。

9.replace(),替代字符串中的字符

string a="abcde";
a.replace(a.begin(),a.begin()+3,"12");
cout<<a<<endl;//这里a变成了12de,因为将下标为[0,3)的元素替换成了“12”

10.find(),查找出现的字符串的位置

string c="abcbc";
cout<<c.find("bc")<<endl;//返回下标1,因为是返回第一次出现的位置
cout<<c.find("bc",2)<<endl;//返回3,因为是从字符串下标为2的地方开始查找第一次出现的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值