<vector>
聲明定義
vector<int> v(5)
聲明長度爲5的vector,並且初始化爲0vector<int> v={1,2,3,3,2,1}聲明初始值爲{1,2,3,3,2,1}
的vector,長度爲6
常用方法
v.size()
返回vector長度(包含的有效值個數)v[0]
可用方括號訪問特定位置的值,v[v.size()-1]=0
並且可以修改特定位置的值,但是不能訪問或更改超出size()範圍的值v.clear()
清空vector,並且size()長度變爲0v.push_back(0)
在vector尾端插入值
<map>
聲明定義
map<int,int> m
m的每個值類型是pair<int,int>
常用方法
typedef pair<int,int> Pair
m.insert(Pair(1,2))
map插入數據m.size()
map有效值個數m[1]
可以方括號(鍵)來訪問和修改相對應的值,注意如果如果訪問不存在的鍵,map會自動把該鍵和0值存入(僅限int類型,其他類型值會爲空),如下圖例子
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
typedef pair<int, int> Pair;
int main(){
map<int,int> m;
m.insert(Pair(1,-9));
cout<<m[2]<<endl;
for(auto x:m){
cout<<x.first<<" "<<x.second<<endl;
}
}
//輸出:
0
1 -9
2 0
<string>
string基本操作
string str="helloworld";
str[1]='E';//可以用方括號訪問和修改string的值
string與int類型互相轉換
string str="123";
char* ch=str.c_str();//string先轉化成char*
int in=atoi(ch);//atoi接受char*類型參數並轉化成int
注意:如果字符串開頭沒有數字,則atoi會轉化成0,否則會轉化開頭到第一個不爲數字的字符之前的數字,實例如下:
char* c1="hello123"//atoi(c1)會輸出0
char* c2="123hello"//atoi(c2)會輸出123
int轉string用另一種方法
#include <sstream>
int in=123;
stringstream ss;
ss<<in;
string str=in.str();
string方法
str.find('c',pos=0)//搜索字符,默認從pos=0處搜索
str.find("str",pos=0)//搜素字符串,默認從pos=0處搜索,可以是string類也可以是char*類字符串
<algorithm>
算法
sort(v.begin(),v.end())
&sort(v.begin(),v.end(),function)
count(v.begin(),v.end(),0)
查找等於0的個數
count_if(v.begin(),v.end(),function)
查找function返回true的個數