整理幾個好用的函式,容器

2021-08-16 21:59:26 字數 2747 閱讀 3166

1.二分查詢upper_bound 和lower_bound

vector::iterator it = lower_bound(v.begin(), v.end(), 3);  //返回vector中第乙個大於(等於)3的數的指標

int pos = lower_bound(v.begin(), v.end(), 3)-v.begin(); //得到在vector中的位置

2.去重unique函式

unique的作用實質上是把重複的元素新增到容器末尾,而返回值是去重之後的尾位址

例:

int a[10]=;  

int ans=unique(a,a+10)-a; //此時ans為5

3.全排函式next_permutation和prev_permutation

例:sort(a,a+n); //先排序得到a的最小排列

do //依次輸出陣列a的排序

{ for(int i=0;i4.vector

a.  reverse(v.begin(),v.end());將元素翻轉,即逆序排列

b. 邊遍歷邊刪除

for(vector::iterator it=v.begin(); it!=v.end();)

v.erase(it);

c.刪除區間 v.erase(v.begin()+i,v.end()+j);

5.map

a.構造mapm;

b.新增資料 m.insert(map::value_type(111,"acs");

或m.insert(pair(111,"acs");

或m[111]="acs";

在指定位置插入

map::iterator it=m.begin();

pair::iterator, bool> p;  

p=m.insert(it,pair(111,"acs");

if(p.second==true) 插入成功

c.遍歷

for(map::iterator it = m.begin(); it != m.end(); it++)  

coutd.查詢

m.find(1); //查詢關鍵字1

e.刪除

m.erase(1); //刪除關鍵字為1的值

m.erase(it): //刪除it所指向的位置的值

m.erase(it1,it2); //刪除兩指標間的值(左閉右開)

6.string

a.初始化

a)    string s;  //生成乙個空字串s

b)    string s(str) //拷貝建構函式 生成str的複製品

c)    string s(str,stridx) //將字串str內「始於位置stridx」的部分當作字串的初值

d)    string s(str,stridx,strlen) //將字串str內「始於stridx且長度最多strlen」的部分作為字串的初值

e)    string s(cstr) //將c字串作為s的初值

f)    string s(chars,chars_len) //將c字串前chars_len個字元作為字串s的初值。

g)    string s(num,c) //生成乙個字串,包含num個c字元

h)    string s(beg,end) //以區間beg;end(不包含end)內的字元作為字串s的初值

i)    s.~string() //銷毀所有字元,釋放記憶體

b.查詢

int find(char c, int pos = 0) const;//從pos開始查詢字元c在當前字串的位置

int find(const char *s, int pos = 0) const;//從pos開始查詢字串s在當前串中的位置

int find(const char *s, int pos, int n) const;//從pos開始查詢字串s中前n個字元在當前串中的位置

int find(const string &s, int pos = 0) const;//從pos開始查詢字串s在當前串中的位置

c.插入

s.insert(2,"sf"); //在2下標插入sf

d.刪除

s.erase(2,4); //刪除從2下標開始的4個字元

s.erase(2); //刪除從而下標開始的所有字元

s.erase(remove(s.begin(),s.end(),'a'),s.end); //刪除給定區間內所有的a

e.提取

s.substr(pos,len); //提取從下標pos開始的長度為len的字串

7.set

a.插入

s.insert(v.begin(),v,end()); //把vector中的元素插入集合

s.insert(a); //插入單個元素

b.查詢

s.count(b); //返回b出現的次數

s.find(b); //返回b所在位置的指標

c.刪除

s.erase(iterator)  ,刪除定位器iterator指向的值

s.erase(first,second),刪除定位器first和second之間的值

s.erase(key_value),刪除鍵值key_value的值

(持續更新……)

幾個好用的副詞

1.relatively rel t vli 相對的例如 relatively good 相對來說比較好 that cell phone is relatively nice looking 那台手機相對來說好看點 2.extremely k stri mli 相當的例如 this sofa is ...

幾個好用的vim外掛程式

1.winmanager 可將檔案瀏覽器 buffer列表整合在側邊欄,它依賴於bufexplorer 2.nerdtree 樹狀目錄外掛程式,比winmanager的檔案瀏覽更美觀。3.txtbrowser 純文字瀏覽,為純文字自動生成目錄樹側邊欄 taglist視窗 語法高亮等,用來看txt文件...

介紹幾個好用的軟體

foxmail 比 outlook 好用。magic note 3.3 是一款在電腦上寫電子便筏的很好的軟體,以前我總是 用 記事,現在發現magic note 方便,但是不好的是,他的編輯介面裡 不能撤銷。比 cterm 2000 改進了好多,用起來方便多了。最近看到 自由也在用 上 了。tota...