如果是这样,我们可以假设数组末尾会有一个空终止符吗?
问问题
127 次
2 回答
2
vector
复制构造函数不只是将指针复制到向量的内部存储;它会复制另一个向量的内容。(如果它只是复制了一个指针,那么对一个向量所做的更改将反映在另一个向量中,并且如您所知,这不是vector
该类的行为方式。)
此外,不能保证有任何特殊标记向量的内部存储结束。(并且内部存储不一定是数组。)要检测向量的结尾,请使用该size
函数来帮助确定向量允许的最高索引,或将迭代器与end
. 不要寻找哨兵值,除非你自己放了一个,或者你的图书馆文档告诉你期待一个。
于 2012-02-24T18:16:00.923 回答
0
大概你在谈论std::vector<T>
. 那是复制构造函数,它不需要数组的地址,而是对另一个向量的 const 引用。您,该其他向量的提供者,不需要添加终止空值。
std::vector<int> mine;
std::vector<int> theirs(mine); // no particular change required for mine
于 2012-02-24T18:17:37.673 回答