C++ Primer笔记 容器和算法(2)
int main() {//怎樣正確的刪除全部元素 循環int a[]={1,2,3,4,5,6,7,8,9};vector<int> v(a,a+6);for(vector<int>::iterator it=v.begin();it!=v.end();){it=v.erase(it);}for(vector<int>::iterator it=v.begin();it!=v.end();it++){cout<<*it<<endl;}cout<<v.size()<<endl;getchar();return 0; }
重置元素和交換元素
c.swap(c2)
c.assign(b,e)
c.assign(n,t) ?(迭代器不能是指向c的)
容器能夠自己主動增長
像vector這樣的增長代價比list要大
capacity()和reserve()
通常會預留比size大的空間,當不得不又一次分配內存時候,會加倍當前容量的分配策略
也能夠手動reserve(size) 分配
deque能夠隨機訪問
String s4(s3.begin(),s3.end())
?
適配器
?
1.?????? Stack<int> stack(deq)‘
Stack,queue都基于deque實現
2.?????? Priority_queue 基于vector實現
?
棧
s.empty()
s.size()
s.pop()
s.top()
s.push(item)
?
隊列
q.empty()
q.size()
q.pop()
q.front()
q.back()
q.top()
q.push()
?
關聯容器
?
Map與set
?
Map:key-value
Set:一個key
Multimap:同一個鍵多次出現的map類型
Multiset:同一個鍵多次出現的set類型
?
1.Pair 類型
創建與初始化: pair<string,string> p;
p.first 第一個元素? p.second 第二個元素
?
又一次生成:? pair<string,string>next;
?????????????????? ?? Next=make_pair(first,last);
也支持直接賦值
???????? ?????? Next.first=xx.?? Next.second=xx;
?
2.關聯容器:
2.1 map
Map<ISBN,sales> bookstore;
?
Map<k,v>::key_type , mapped_type,value_type(pair類型)
?
?
總結
以上是生活随笔為你收集整理的C++ Primer笔记 容器和算法(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第7章 实战演练:爬取百度百科1000个
- 下一篇: [转]你所不知的 CSS ::befor