C++Primerノートコンテナとアルゴリズム(2)


erase削除後に返されるのは、要素を削除した後の反復器の位置です.
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(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タイプ)