C++Primerノートコンテナとアルゴリズム(2)
erase削除後に返されるのは、要素を削除した後の反復器の位置です.
要素と交換要素のリセット
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 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タイプ
作成と初期化:pairp;
p.first 1番目の要素p.second 2番目の要素
再生成:pairnext;
Next=make_pair(first,last);
直接割り当てもサポート
Next.first=xx. Next.second=xx;
2.関連コンテナ:
2.1 map
Map bookstore;
Map::key_type , mapped_type,value_type(pairタイプ)
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
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
p.first 1番目の要素p.second 2番目の要素
再生成:pair
Next=make_pair(first,last);
直接割り当てもサポート
Next.first=xx. Next.second=xx;
2.関連コンテナ:
2.1 map
Map
Map