【发布时间】:2014-07-19 11:03:07
【问题描述】:
struct Solution {
double power_peak;
valarray<int> assignment;
};
list<Solution> list;
list.pop_back();
list<Solutions *> list2;
list2.pop_back();
function(list2);
您好,我仍然不明白这些容器在内容方面是如何工作的。 假设他们之前被填满。 当我在第一个列表上调用 pop_back 时。我假设一切都被破坏了(包括 Valarray 中的 int) 当我在第二个列表上调用 pop_back 时。内容仍然存在。
当我进行函数调用时。列表的行为是否类似于指向数组的指针?所以只复制了指针,但它们仍然指向相同的内容。
这对吗?
vector 或 valarray 在复制方面会表现得其他方面吗?
【问题讨论】:
-
行为在某种程度上取决于
function的声明... -
发布的代码执行未定义的行为:请在删除最后一个元素之前填充容器,或编辑您的示例。
标签: c++ std standard-library