动态数组,C++中的vector支持动态数组特性:
int N=10;
vector<int> a(N) //初始化值为0的list
vector<string> b(N)
vector<vector<int>> a(N,vector<int>(M,0))
//初始化一个二维数组
int N=10;
int *p=new int[N];
delete [] p;
初始化string,多个重复的字符:
string temp(int n, char c);
求vector中的最大值:
vector<int> a={1,2,3,4,5};
vector<int>::iterator max_it=max_element(a.begin(),a.end());
int max_val=*max_it;
队列:C++STL中提供了队列,支持:
#include<queue>
using namespace std;
queue<int> q;
q.push(1); //在队尾插入
q.pop(); //将队头出队,无返回值
q.size(); //返回队列的大小
q.front(); //队头
q.back(); //队尾
q.empty();
队列不支持遍历操作
字符串截取:
#include<string>
using namespace std;
#截取子串
s.substr(pos,n) #截取从pos开始的n个字符,返回
s.substr(pos) #截取从pos开始到末尾的子串,返回
#替换子串
s.replace(pos,n,s1) #利用s1替换从pos开始的n个字符
#查找子串
s.find(s1) #查找s中第一次出现s1的位置,并返回,找不到时返回-1
s.rfind(s1) #查找s中最后一次出现s1的位置,并返回,找不到时返回-1
s.find_first_of(s1)
s.find_last_of(s1)
s.fin_first_not_of(s1)
s.fin_last_not_of(s1)
char*与string:
#include<string>
using namespace std;
string:C++封装的容器
char* char[] C\C++的固有类型
char* p="xczx"; //默认末尾存着'\0'
(1)string转char*
string s="xcz";
const char *p=s.c_str();
const char *P=s.data(); #此处为const类型,否则会报错
//转化为非const类型
string s="xcz";
char *p;
int len=s.length();
p=(char*)malloc((len+1)*sizeof(char));
s.cpoy(data,len,0);
(2) char*转化为string:
char *p="xcz";
string s=p;