STLのいくつかのコンテナ(2 D)の初期サイズの問題

17820 ワード

普段は基本的にCを使って、C++を使うのも基本的なcin、cout、調整sortなどで、今日は自分でSTLを練習していくつかの2次元容器を書いて、基本的な入出力だけで、いくつかの小さな問題に遭遇しました.
 

  
    
// vector ,list ,deque ,
//
// , a(MAX),
vector < vector < int > > aa1( 10 );

// ************ *************
for (i = 0 ;i < 10 ;i ++ ){
for (j = 0 ;j < 10 ;j ++ ){
aa1[i].push_back((
10 - i) * ( 10 - j));
}
}
// ************ **********
for (i = 0 ;i < 10 ;i ++ ){
aa1[i].resize(
10 ); // , C ,
}
for (i = 0 ;i < 10 ;i ++ ){
for (j = 0 ;j < 10 ;j ++ ){
aa1[i][j]
= ( 10 - i) * ( 10 - j);
}
}

// ************ *******************
for (i = 0 ;i < 10 ;i ++ ){
for (j = 0 ;j < 10 ;j ++ ){
cout
<< aa1[i][j] << " , " ;
}
cout
<< endl;
}
//

// set ,map ,multimap ,multiset
// , ,
// , , vector ,
//
set < set < int > > aa;

// *********** set ***********************
set < set < int > > ::iterator it1;
set < int > ::iterator it2;
for (i = 0 ;i < 10 ;i ++ ){
set < int > bb;
for (j = 0 ;j < 10 ;j ++ ){
bb.insert((
10 - i) * ( 10 - j));
}
aa.insert(bb);
bb.swap(
set < int > ()); //swap , clear
}
// *********** *************************
for (it1 = aa.begin();it1 != aa.end();it1 ++ ){
for (it2 = ( * it1).begin();it2 != ( * it1).end();it2 ++ ){
cout
<<* it2 << " , " ;
}
cout
<< endl;
}


// stack , queue ,priority_queue
// stack,queue deque ,priority_queue vector
//
// ********** *******************
stack < stack < int > > aaa;
stack
< int > bbb;
for (i = 0 ;i < 10 ;i ++ ){
for (j = 0 ;j < 10 ;j ++ ){
bbb.push((
10 - i) * ( 10 - j));
}
aaa.push(bbb);
bbb.swap(stack
< int > ());
}
// ********** ****************
for (i = 0 ;i < aaa.size();i ++ ){
for (j = 0 ;j < aaa.top().size();j ++ ){
aaa.top().pop();
}
}

その他の関連資料http://blog.csdn.net/armman/archive/2007/03/07/1523228.aspx
          http://hi.baidu.com/zhengqingtech/blog/item/b07edbfbb28dd9d9b58f3128.html