1. map
mapm;
mapm;
key-value一一對應,乙個key只能有乙個value,且m按key自動排序
map::iterator it;for(it = m.begin();it != m.end();it++)
2. vector
vectorvec;
尾部插入數字:vec.push_back(a);
使用下標訪問元素,cout《插入元素: 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::iterator it;for(it=vec.begin();it!=vec.end();it++)
cout<<*it<
3. set
sets;
begin()--返回指向第乙個元素的迭代器
clear()--清除所有元素
count()--返回某個值元素的個數
empty()--如果集合為空,返回true
end()--返回指向最後乙個元素的迭代器
erase()--刪除集合中的元素
find()--返回乙個指向被查詢到元素的迭代器
insert()--在集合中插入元素
size()--集合中元素的數目
swap()--交換兩個集合變數
迭代:
set::iterator it;
for(it=s.begin();it!=s.end();it++)
cout
<<*it<4. queue
queueq;
入隊,q.push(x); 將x 接到佇列的末端。
出隊,q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,q.front(),即最早被壓入佇列的元素。
訪問隊尾元素,q.back(),即最後被壓入佇列的元素。
判斷佇列空,q.empty(),當佇列空時,返回true。
訪問佇列中的元素個數,q.size()
while(!q.empty())
5. priority_queue
priority_queue ,greater> q; //公升序佇列
priority_queue ,less>q; //降序佇列
greater和less是std實現的兩個仿函式(就是使乙個類的使用看上去像乙個函式。其實現就是類中實現乙個operator(),這個類就有了類似函式的行為,就是乙個仿函式類了)
和佇列基本操作相同:6. stack
stacks1;
stacks2;
入棧,s.push(x);
出棧,s.pop();注意,出棧操作只是刪除棧頂元素,並不返回該元素。
訪問棧頂,s.top()
判斷棧空,s.empty(),當棧空時,返回true。
訪問棧中的元素個數,s.size()。
while(!s.empty())
C 程式設計技巧錦集(二)
1.萬能標頭檔案 include 2.字串輸入 cin s 以空格為分隔符 getline cin,s 以回車為分隔符,但注意使用前若有scanf 則必須使用getchar 3.取消同步 std ios sync with stdio false 有了這個就可以放心使用cin和cout啦,不過就不能...
VC程式設計技巧錦集
問題一 解決workspace中的classview顯示混亂 解答 即新增的成員變數或函式不能顯示 即使顯示出來了變數或函式,雙擊後不能跳至正確的位置。刪除.ncb檔案,再rebuild all,即可。問題二 向專案中加入自己定義的類的簡單方法 解答 選擇insert new class選單,彈出對...
VC程式設計技巧錦集
問題一 解決workspace中的classview顯示混亂 解答 即新增的成員變數或函式不能顯示 即使顯示出來了變數或函式,雙擊後不能跳至正確的位置。刪除.ncb檔案,再rebuild all,即可。問題二 向專案中加入自己定義的類的簡單方法 解答 選擇insert new class選單,彈出對...