你不知道的vector和string方法?

文章详细介绍了C++中的vector容器,包括如何定义、使用其各种方法如resize、push_back、insert、erase、swap等。还提到了string类的相关查找函数,如find、rfind等。强调了实践操作对于熟练掌握这些容器的重要性。
摘要由CSDN通过智能技术生成

变长数组,但是不是链表,刚开始误以为是链表,因为链表当时学的时候就是说的相比数组可以变长,熟练应用这个容器的每一个方法:

定义:

vector<int> v(10);//可以指定大小或者不指定,无论全局还是不是全局,这个都是全部是零

或者v.resize(10)、v(100,0) ,相比数组[],改成了(),意思就是可以变通,可以变长

方法:

迭代器:begin() end() cbegin() cend() rbegin() rend() crbegin() crend()        

size()大小 和 resize()

capacity容量 和 reserve()有关系

max_size()能承受的最大数量

empty是否为空

shrink_to_fit减少使适合

front() back()第一个和最后一个元素的值

assign:有两个用法,一个是a.assin(v.begin(),v.end()) [,),第二个是a.assign(3,1),这两个都会改变原先里面的值

v.push_back() 和 pop_back()分别是向后面添加一个元素,向后面减少一个函数

v.insert这个函数有三个用法:

v.insert(v.begin() + i,x) 注意这个用法的返回是新插入x位置的迭代器

v.insert(v.begin(),n,x) 在这个位置之前插入n个x

v.insert(v.begin,v.begin + i,v.begin + j)指定位置插入区间的数

v.erase(v.begin() + i) 这个还有一个用法 erase(v.begin(),v.begin() + i)  

v.swap(a)这个真的好神奇啊,交换两个的值,连同SIZE会一同改变

v.clear()size回一起改变

v.emplace(v.begin,x)只能插入一个值,而且效率相比insert更好,更高

v.emplace_back()这个相比push_back更快,以后就用这个了

光说不练肯定是不行的,既然为我们提供这么方便的函数,我们就要没事多用,只有用才能用的更加熟练,透彻,不能整天拿着数组给自己真的会一样

string:

String查找子串和字符

find:从前往后查找子串或字符出现的位置。
rfind:从后往前查找子串或字符出现的位置。
find_first_of:从前往后查找何处出现另一个字符串中包含的字符。例如:
s1.find_first_of("abc");  //查找s1中第一次出现"abc"中任一字符的位置
find_last_of:从后往前查找何处出现另一个字符串中包含的字符。
find_first_not_of:从前往后查找何处出现另一个字符串中没有包含的字
 

string::npos这个东西是一个空的东西,然后如果s.find一个找不到的东西,就会返回这个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codeforces1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值