在循环内重用先前定义的数据类型

时间:2016-05-10 20:28:05

标签: c++

我正在尝试执行以下操作:

询问用户名称,然后询问用户的值(将用于构建向量集合),然后打印出各种值的组合,然后重新执行。

我的问题是,在第一次循环之后再次询问名称后,我收到“分段错误(核心转储)”错误消息。我假设这与在第一个循环中构造/定义的向量有关。所以,我想知道在每次循环后是否有任何方法可以清除这些对象。也就是说,我想要的是:

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);

如果你可以指出任何有用的参考资料,那就太棒了。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在循环外部创建向量,并在循环内清除它们。它看起来像下面这样:

vector<string> info;
do {
    // get input and do whatever
    info.clear();
} while (condition);

一些文档http://www.cplusplus.com/reference/vector/vector/clear/

<强>更新

我的原始答案是专门告知您如何清除矢量,但似乎有可能为您提供更好的解决方案。鉴于您的描述,似乎不需要在循环外移动声明并在结尾处清除向量。如果没有其他代码,我们无法知道导致seg错误的原因以及如何正确处理此问题。