STL常见用法(刷题足够)
1、选择C++刷算法的理由
- 1.C++速度快(C不是更快么,java太慢了)
- 2.C++有STL(什么是STL)——使用很方便的类库
- 3.如何使用STL进行高效刷算法
- 4.好处:刷算法,学习成本极低
- 5.如何从C到C++(仅基础语法到刷算法程度)
2、输入输出
2.1.C程序中输入输出
int a;
scanf("%d",&a);
printf("%d",a);
2.2.C++输入输出
int a;
cin>>a;
cout<<a;
3、STL(Standard Template Library)与algorithm头文件
STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。
algorithm是对容器继承的一些算法函数,辅助刷算法题
sort函数
概念:迭代器——理解为指针
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[]={
2,1,5,0,-1,5,9};
sort(a,a+7);
for(int i=0;i<7;i++)
cout<<a[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
4、STL——string
概念:相当于char数组的封装,理解为字符串
4.1.简单使用
/**C中定义字符串以及打印*/
char *ch="asdkajbf";
for(int i=0;ch[i]!='\0';i++) cout<<*(ch+i);
/**C++中*/
string s="ssadaffw";
cout<<s<<endl;
4.3.+=运算符
+=对于字符串,字符有效,数字会转为asc码
string s;
s+="hello";
s+=" world";
s+='5';
s+=10;//10对应的asc码是换行
int a=5;//想把a加入字符串
s+=(a+'0');
cout<<s;
4.4.排序(使用algorithm)
string s="5418340";
sort(s.begin(),s.end());
cout<<s;
4.5.erase函数
/**begin是头迭代器,end是尾迭代器*/
string s="5418340";
s.erase(s.begin());//删除第一个
s.erase(--s.end());//删除最后一个
cout<<s;
4.6.substr函数
/**begin是头迭代器,end是尾迭代器*/
string s="5418340";
s=s.substr(1,3);//取418,取索引为1,往后截断3个
s=s.substr(1,-1);//索引为1,截断到最后
cout<<s;
4.7.循环(3种)
1.for循环
string s="5418340";
for(int i=0;i<s.length();i++) cout<<s[i];
2.迭代器
for(string::iterator it=s