一、string类库(字符串)
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
//string类型的定义与初始化
string s1;
string s2="123456789";
string s3(10,'p'); //n个字符初始化
string s4;
cout<<s3<<endl;
cout<<s4.size()<<endl;
//string的子串
cout<<s2.substr()<<endl; //全部子串
cout<<s2.substr(4)<<endl; //索引第4位以后的子串
cout<<s2.substr(4,3)<<endl; //索引第4位以后3位的子串
//string的特征描述
cout<<s2.capacity()<<endl; //返回当前容量(即不用增加内存就能放置的元素个数)
cout<<s2.max_size()<<endl; //返回string对象可存放的最大字符串的长度
/*
s2.length(); 长度
s2.size();长度
s2.empty();判断是否为空
*/
s1.resize(12,'k'); //重新设置s1的长度,为12,并且初始值全部为‘k’。
cout<<s1<<endl;
//string的查找函数
string ss="456";
cout<<s2.find('5',0)-s2.find(s2[0],0)<<endl; //find从pos开始查找s2中当前ch出现的位置 ,返回字符串的当前位置
cout<<s2.find(ss,0)-s2.find(s2[0],0)<<endl; //从pos开始查s1在s2中当前出现的位置
/*
cout<<s2.find_first_of(ss,0)-s2.find(s2[0],0)<<endl; //从pos开始找s2中ss第一次出现的位置,返回子串串的当前位置。
s2.find_first_not_of(); //查找第一个不出现的位置;
s2.find_last_not_of(); //从后向前查找
*/
//string的迭代表示
for(string::iterator it=ss.begin();it!=ss.end();++it)
cout<<*it<<" ";
return 0;
}
二、vector类库(可变长度的数组)
1、vector的定义与初始化
#include<iostream>
#include<vector>
using namespace std;
int main(void)
{
//vector的定义
vector <int> v1;
vector <vector <int> > v2;
//两种定义均合法
vector <int> vv1(5,10);//vv1的长度为5,每个元素都是10
//除此之外,vector还支持(),=,列表式等初始化方式。
vector <int> vvv1(10); //10个元素,每个元素初始值为0
区分
vector <int> vc(10,1);//vc有10个元素,每个元素为1
vector <int> vd{10,1}; //vd有10,1两个元素
return 0;
}
2、vector常用函数
#include<iostream>
#include<vector>
using namespace std;
int main(void)
{
int x=1;
vector <int> vc;
vc.push_back(x); //向vc中输入元素
vc.size(); //求出vc的大小
vc[0]; //vc的元素
vc.resize();//调整vc的大小
vc.clear();//清空vc
//vc在algorithm中的常用函数
sort(vc.begin(),vc.end(),cmp); //以cmp的规则排序
reverse(vc.being(),vc.end());//翻转
return 0;
}
3、vector函数的iterator使用
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int main(void)
{
vector <int> vc;
for(int i=1;i<=12;i++) vc.push_back(i);
for(vector <int>::iterator it=vc.begin(); it!=vc.end(); it++)
cout<<*it<<endl;
return 0;
}