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/operator | Description |
|---|---|
| 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) 收藏 举报
浙公网安备 33010602011771号