|
发表于 2003-9-15 21:56:31
|
显示全部楼层
vector<string> *pvec1 = new vector<string>(10);
vector<string> *pvec2 = new vector<string>[10];
是可以的。但意思完全不同。意思就是无双讲的。
vector<string> *pvec1 = new vector<string>(10);
a pointer point to a vector which contains 10 elements, each element is a string.
括号() 的作用就在与此。
vector<string> *pvec2 = new vector<string>[10];
just like:
char *parr = new char[10];
意思是: pointer parr point to a unamed array which contains 10 elements, each is a character.
所以第二句可以这样理解:
vector<string> *pvec2 = new vector<string>[10];
pointer pvec2 point to a unamed array which contains 10 element,each element is a vector including strings.
注意每个 vector 中的元素都是 string.
如果想要指定 vector's size,即它能包含的 string 的个数 :
for (int i = 0; i < 10; ++i) { std::cout << pvec2.size() << std::endl; }
这是我的浅陋理解。 |
|