/*
STL笔记整理
STL是c++中一个比较方便的东西,不管是为了看别人的代码
还是让自己的代码看起来更(you)优(bi)美(ge),学一学是
可以的
1.string用法
string在c++用于处理字符串
可以与c中的char对比着学
By: JiangDingyuan
2018-1-14 09:32:53
*/
#include <iostream>
#include <string>//string头文件,注意不要与#include <string.h>或#inlude <cstring>混淆
using namespace std;
int main() {
//1.定义
string s;//定义一个string相当于char str[];
string ss[10];//相当于char str[10][];
//2.定义及初始化
string str_1("ssrssr");//定义str_1并将它赋值"ssrssr",相当于char str_1[] = "ssrssr"
string str_2 = "ssrssr";//功能同上,写法不同
string str_3(str_2); //定义str_2并将str_1中的所有元素赋给str_2
string str_4 = str_3; //功能同上,写法不同
string str_5(10,'c');//定义str_5并将前10个位置全部赋值为'c'
string str_6("12345",3);//将字符串"12345"前三个字符赋值给str_6
string sss = "abcdef";
string str_7(sss,2);//将sss从下标2到末尾赋值给str_7
string str_8(sss,2,3);//将sss从下标2开始的3个字符赋给str_8
//3.string操作
//3.1.string基本操作
string a;
cin >> a;
cout << a <<endl; //string可以直接用cin cout进行输入输出
/*
string支持char类型的访问每一个元素的方式,同时
支持+><=等操作,比之char类型更加强大.
*/
string t1 = "123456789";
string t2;
string t3 = "234567891";
string t4,t5,t6;
for (int i = 0; i < 9; i++)
cout << t1[i] << endl; //访问t1中每一个元素
t2 = t1;//将t2赋值为t1
t1 == t2; //判断t1 t2是否相等
t1 > t3; t1 < t3;//判断t1 t3 大小
t4 = t2 + t3; //将t2t3相连赋给t4
//3.2.string常用函数
cout << t1.size() <<endl; //输出t的长度
t2.assign(t1); //将t1赋给t2
t3.assign(t1,2,3);//将t1从下标2开始的3个字符赋给t3
t4.assign("abcde",4);//将字符串"abcde"前三个字符赋值给t4
t5.assign(10,'c');//将s5前10个位置全部赋值为'c'
cout << "/****************************/" <<endl;
t1.begin();//返回一个迭代器,指向t1第一个元素
t1.end();//返回一个迭代器,指向t1的末尾(最后一个字符的下一个位置)
t1.rbegin();//返回一个逆向迭代器,指向t1的最后一个字符
t1.rend();//返回一个逆向迭代器,指向t1的开头(第一个字符的前一个位置)
/*
在这里,可以将迭代器理解为一个指针,但要注意
逆向迭代器的移动方向与正迭代器方向相反,例如,
如果想取到t1[0]处的元素,要写成*(t1.rend()-1)
*/
t1.erase(2,5);//删除从下标2开始的五个元素
t2.erase(t2.begin()+5, t2.end()-2);//删除从begin+5开始到end-2之前的所以有元素
substr(i,4) 复制从i开始后面4个字符
return 0;
} /*
STL笔记整理
STL是c++中一个比较方便的东西,不管是为了看别人的代码