C++ STL - vector map string algorithm 常用操作

<vector>

聲明定義

  1. vector<int> v(5)聲明長度爲5的vector,並且初始化爲0
  2. vector<int> v={1,2,3,3,2,1}聲明初始值爲{1,2,3,3,2,1}的vector,長度爲6

常用方法

  1. v.size()返回vector長度(包含的有效值個數)
  2. v[0]可用方括號訪問特定位置的值,v[v.size()-1]=0並且可以修改特定位置的值,但是不能訪問或更改超出size()範圍的值
  3. v.clear()清空vector,並且size()長度變爲0
  4. v.push_back(0)在vector尾端插入值

<map>

聲明定義

  1. map<int,int> m m的每個值類型是pair<int,int>

常用方法

  1. typedef pair<int,int> Pair
    m.insert(Pair(1,2))map插入數據
  2. m.size()map有效值個數
  3. 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>算法

  1. sort(v.begin(),v.end()) &sort(v.begin(),v.end(),function)
  2. count(v.begin(),v.end(),0)查找等於0的個數
    count_if(v.begin(),v.end(),function)查找function返回true的個數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章