C++ 編程技巧錦集(一)

 

C++刷題精髓在STL編程,還有一些函數。下面我就總結一下本人在刷題過程當中,每逢碰見總要百度的內容………………(大機率由於本人刷題太少了)編程

1. mapless

map<string, int> m;函數

map<int, int> m;spa

key-value一一對應,一個key只能有一個value,且m按key自動排序.net

begin()          返回指向map頭部的迭代器
clear()         刪除全部元素
count()          返回指定元素出現的次數
empty()          若是map爲空則返回true
end()            返回指向map末尾的迭代器
erase()          刪除一個元素
find()           查找一個元素
insert()         插入元素
size()           返回map中元素的個數

code

迭代:blog

map<int, int> ::iterator it;
for(it = m.begin();it != m.end();it++)
{
    cout << it->first << it->second << endl;    
}

 

 

2. vector排序

 vector<int> vec;隊列

尾部插入數字:vec.push_back(a);get

使用下標訪問元素,cout<<vec[0]<<endl;

插入元素:    vec.insert(vec.begin()+i,a);在第i+1個元素前面插入a;

刪除元素:    vec.erase(vec.begin()+2);刪除第3個元素

vec.erase(vec.begin()+i,vec.end()+j);刪除區間[i,j-1];區間從0開始

向量大小:vec.size();

清空:vec.clear();

迭代:

vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;

 

 

3. set

 set<int> s;

begin()--返回指向第一個元素的迭代器

clear()--清除全部元素

count()--返回某個值元素的個數

empty()--若是集合爲空,返回true

end()--返回指向最後一個元素的迭代器

erase()--刪除集合中的元素

find()--返回一個指向被查找到元素的迭代器

insert()--在集合中插入元素

size()--集合中元素的數目

swap()--交換兩個集合變量

 

迭代:

set<int>::iterator it;
for(it=s.begin();it!=s.end();it++)
    cout<<*it<<endl;

 

 

4. queue

 queue<int> q;

入隊,q.push(x); 將x 接到隊列的末端。
出隊,q.pop(); 彈出隊列的第一個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,q.front(),即最先被壓入隊列的元素。
訪問隊尾元素,q.back(),即最後被壓入隊列的元素。
判斷隊列空,q.empty(),當隊列空時,返回true。
訪問隊列中的元素個數,q.size()

while(!q.empty())
{
    q.front();
    q.pop();  
}

 

 

5. priority_queue

https://blog.csdn.net/weixin_36888577/article/details/79937886
priority_queue <int,vector<int>,greater<int> > q;      //升序隊列
priority_queue <int,vector<int>,less<int> >q;           //降序隊列
greater和less是std實現的兩個仿函數(就是使一個類的使用看上去像一個函數。其實現就是類中實現一個operator(),這個類就有了相似函數的行爲,就是一個仿函數類了)

和隊列基本操做相同:

  • top 訪問隊頭元素
  • empty 隊列是否爲空
  • size 返回隊列內元素個數
  • push 插入元素到隊尾 (並排序)
  • emplace 原地構造一個元素並插入隊列
  • pop 彈出隊頭元素
  • swap 交換內容

 

 

6. stack

stack<int> s1;
stack<string> s2;
入棧,s.push(x);
出棧,s.pop();注意,出棧操做只是刪除棧頂元素,並不返回該元素。
訪問棧頂,s.top()
判斷棧空,s.empty(),當棧空時,返回true。
訪問棧中的元素個數,s.size()。

while(!s.empty())
{
    s.top();
    s.pop();  
}
相關文章
相關標籤/搜索