STL学习之vector

1 vector<vector<vector<int> > > vI3Matrix(3,vector<vector<int> >(2,vector<int>(2,100)));
2  for(int i = 0 ; i < 3; i++)
3 for(int j = 0; j < 2; j++)
4 for(int k = 0; k < 2; k++)
5 printf("%d \r\n",vI3Matrix[i][j][k]);

以上代码定义了一个3x2x2的三维整形数组,并全部初始化为100。很难读,不过作以下分解就很了然了。

1 vector<int> vI1Matrix(2,100);
2
3 vector<vector<int> > vI2Matrix(2,vI1Matrix);
4
5 vector<vector<vector<int> > > vI3Matrix(3,vI2Matrix);

通过iterator访问二维vector,三维类推:

1 #include <iostream>
2 #include <vector>
3
4  using namespace std;
5
6 main()
7 {
8 vector< vector<int> > vI2Matrix; // Declare two dimensional array
9 vector<int> A, B;
10 vector< vector<int> >::iterator iter_ii;
11 vector<int>::iterator iter_jj;
12
13 A.push_back(10);
14 A.push_back(20);
15 A.push_back(30);
16 B.push_back(100);
17 B.push_back(200);
18 B.push_back(300);
19
20 vI2Matrix.push_back(A);
21 vI2Matrix.push_back(B);
22
23 cout << endl << "Using Iterator:" << endl;
24
25 for(iter_ii=vI2Matrix.begin(); iter_ii!=vI2Matrix.end(); iter_ii++)
26 {
27 for(iter_jj=(*iter_ii).begin(); iter_jj!=(*iter_ii).end(); iter_jj++)
28 {
29 cout << *iter_jj << endl;
30 }
31 }
32 }
Method/operatorDescription
vector<T> v; Vector declaration of data type "T".
vector<T> v(size_type n); Declaration of vector containing type "T" and of size "n" (quantity).
vector<T> v(size_type n,const T& t); Declaration of vector containing type "T", of size "n" (quantity) containing value "t".
Declaration: vector(size_type n, const T& t)
vector<T> v(begin_iterator,end_iterator); Copy of Vector of data type "T" and range begin_iterator to end_iterator.
Declaration: template vector(InputIterator, InputIterator)

References:

[1],C++ STL Tutorial. http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html

posted on 2011-05-15 16:50  Joshua Leung  阅读(256)  评论(0)    收藏  举报

导航