c vector和string的常見用法

2021-10-21 14:02:20 字數 1590 閱讀 8703

1.二維vector的初始化

vector> num(n1, vector(n2));//n1是行,n2是列
2.重寫比較函式進行排序

#include bool cmp(country a, country b) //countryab是兩個物件,其中有乙個成員函式是金牌數

//在主函式中呼叫:

sort(con.begin(), con.end(), cmp);//con是儲存country多個country物件的vector,注意這裡cmp不要加引數

3.穩定排序

stable_sort(s.begin(), s.end(), cmp0)
4.查詢

vector::iterator ite=find(num.begin(), num.end(), temp);//在num中查詢temp,返回的是迭代器,把迭代器當做指標來理解吧

if (ite == num.end())//查詢失敗

cout << -1;

else

cout << ite - num.begin();//返回陣列下標

cout << *ite;//返回查詢值

5.刪除某段位置的資料

vectornums

nums.erase(nums.begin()+5,nums.end())//刪除第五個元素後序的元素

6.刪除重複元素

vectornums=;

是刪除相鄰的重複元素,所以第一步要先排序

sort(nums.begin(),nums.end());

返回的是迭代器,此時並沒有真正刪除

//它做的事情是:把沒有重複的元素複製到vector前面一段,從ite開始一直到結尾都是重複的元素

vector::iterator ite=unique(nums.begin(),nums.end());

//3.從ite開始刪除

nums.erase(ite,nums.end());

for(int a:nums)cout<7.頭部插入

vectornums;

nums.insert(nums.begin(),3,15)//在頭部插入三個15

1.接收空格輸入的字串

string s;

getline(cin,s);

cout<>n;

cin.ignore();

string s;

getline(cin,s);

2.字母小寫轉大寫

string s 

s[0]=toupper(s[0]);

//s的首字母轉成了大寫

3.字串匹配 find

string s;

string p;

int k=s.find(p);//有多個匹配的話返回第乙個下標,沒有匹配則返回-1

k=t.find(p,k+1);//從k+1位置往後繼續查詢

c ,vector的 和at區別

std vector a std cout 上面輸出是0.容器初始化什麼都不做,大小為0 std vector a std couta.at 0 1 下標賦值會顯示sigsegv段錯誤,越界錯誤.at賦值會顯示terminate called after throwing an instance o...

C vector和list的區別

1.vector資料結構 vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。因此能高效的進行隨機訪問,時間複雜度為o 1 但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o n 另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶體空間並進行記...

C vector和list的區別

1.vector資料結構 vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。因此能高效的進行隨機訪問,時間複雜度為o 1 但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o n 另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶體空間並進行記...