我正在尝试执行以下操作:
询问用户名称,然后询问用户的值(将用于构建向量集合),然后打印出各种值的组合,然后重新执行。
我的问题是,在第一次循环之后再次询问名称后,我收到“分段错误(核心转储)”错误消息。我假设这与在第一个循环中构造/定义的向量有关。所以,我想知道在每次循环后是否有任何方法可以清除这些对象。也就是说,我想要的是:
Do {
ask user for name
ask user for values
create vectors from these values
print off certain elements of the vectors
reset/delete name, values, vectors so that I can run the loop again as if it's the first time
} while(condition);
如果你可以指出任何有用的参考资料,那就太棒了。提前谢谢。
答案 0 :(得分:0)
您可以在循环外部创建向量,并在循环内清除它们。它看起来像下面这样:
vector<string> info;
do {
// get input and do whatever
info.clear();
} while (condition);
一些文档http://www.cplusplus.com/reference/vector/vector/clear/
<强>更新强>
我的原始答案是专门告知您如何清除矢量,但似乎有可能为您提供更好的解决方案。鉴于您的描述,似乎不需要在循环外移动声明并在结尾处清除向量。如果没有其他代码,我们无法知道导致seg错误的原因以及如何正确处理此问题。