想看看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;
}