STL C++部分学习

想看看STL,记一些好用的方法,但是光教程里第一个字符串类就花了我一上午的时间,这方法类别也太让人眼花缭乱了吧

string

1.size()或length()
2.输入以自定义的符号结尾的变量如,: getline(cin,a,’,’);
3. 字符串的比较(区分大小写):a.compare(b) a<b返回-1,相等返回0,否则返回1
4.字符串赋值函数:被赋值字符串.assign(赋值字符串,开始下标,个数)
或.assign(几个,‘你’)
或.assign(赋值字符串,开始下标,赋值字符串,npos)//从下标开始赋值到末尾
5.字符串删除函数:
str.erase (1,4);//删除下标为1的后面共四个元素
str.erase(6);//保留前几个元素
str.erase (str.begin ()+3, str.end()-1);//删除两个下标间的字符,两个下标需都为迭代器operator
6.字符串插入函数

B.insert (1, A);//将A插到B的下标为1的位置后 
B.insert (1, A, 3);//将A字符串的前三个字符插到... 
B.insert(1,A,2,2);//2,2指的限制了下标区间
B.insert (1,5,'C');//5个'c' 

7.字符串追加函数:
B.append(A,)//字符串后面一个参数表示之追加字符串前参数个字符;两个参数的话表示在某下标后追加共多少个元素
或者append(n,‘c’)//追加n个’c’
或append(A.begin(),A.end())
8.字符串的替换
string var (“abcdefghijklmn”);
string dest (“12345”);
var.replace (3,6, dest);
从原串下标3处开始完整替换dest,被替换的原串字符数量为6(并非要求数量等同替换,为0时效果相当于插入dest)
9.find函数 找z字符、字符串都可
find_first_of(A)函数:找到A中任意一个字母第一次出现的下标
find_last_of (A)函数:找到A中任意一个字母出现在最后的下标 **

vector
1.push_back 在数组的最后添加一个数据

2.pop_back 去掉数组的最后一个数据

3.at 得到编号位置的数据

4.begin 得到数组头的指针

5.end 得到数组的最后一个单元+1的指针

6.front 得到数组头的引用

7.back 得到数组的最后一个单元的引用

8.max_size 得到vector最大可以是多大

9.capacity 当前vector分配的大小

10.size 当前使用数据的大小

11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

12.reserve 改变当前vecotr所分配空间的大小

13.erase 删除指针指向的数据项

14.clear 清空当前的vector

15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)

16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)

17.empty 判断vector是否为空

18.swap 与另一个vector交换数据

#include<iostream>
#include<algorithm>
#include<vector>//头文件 
using namespace std;

int main(){
     vector<int>a;//定义 
     for(int i=0;i<10;i++){
     	a.push_back(i);//在容器后面添加元素 
	 }
	 for(int i=0;i<a.size();i++){//size长度函数 
	 	cout<<a[i]<<" ";
	 }
	 cout<<endl; 
	 a.pop_back();//去掉最后一个字符
	 cout<<*a.begin()<<" "<<*a.end()<<endl;//begin()得到数组的头指针,end() 得到数组的最后一个单元+1的指针
	 reverse(a.begin(),a.end());//从大到小排序,相反顺序排就调换一下参数 
	 for(int i=0;i<a.size();i++){//size长度函数 
	 	cout<<a[i]<<" ";
	 } 
	 cout<<endl;
	 a.erase(a.begin()+2);//删除指针指向的数据项,这里第三个数被删了
	  for(int i=0;i<a.size();i++){//size长度函数 
	 	cout<<a[i]<<" ";
	 } 
	 a.clear(); //清除函数 
     return 0;
} 

输出:
0 1 2 3 4 5 6 7 8 9
0 9
8 7 6 5 4 3 2 1 0
8 7 5 4 3 2 1 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值