[003]容器和动态数组的使用

例:

编写程序读入一组 string 类型的数据,并将它们存储在vector 中。接着,把该 vector 对象复制给一个字符指 针数组。为 vector 中的每个元素创建一个新的字符数 组,并把该 vector 元素的数据复制到相应的字符数组 中,最后把指向该数组的指针插入字符指针数组。

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 
 5 using namespace std;
 6 
 7 int main() {
 8     vector<int> vect;
 9     int vectCnt;
10 
11     cout << "please input:"<<endl;
12     while (cin >> vectCnt) {
13         vect.push_back(vectCnt);
14     }
15  
16     int *pTemp = new int[vect.size()];
17     int *p = pTemp;
18     for (vector<int>::iterator iter = vect.begin(); iter != vect.end(); ++iter, ++p) {
19         *p = *iter;
20         cout << *p << endl;
21     }
22     
23     delete [] pTemp;
24     return 0;
25 }

容器可以直接解引用的原理在于:

      迭代器这一概念本身就是重载过operator * 用来解引用得到元素的,这和是不是vector无关,不仅是vector,queue等等其他类型迭代器全部都是要解引用的。所以不必谈“怎么知道”,迭代器全部都要解引用,除非你不是想用它来得到元素。

 

posted @ 2014-03-26 17:31  依然冷月  阅读(295)  评论(0编辑  收藏  举报