在循环中重用以前定义的数据类型

Reusing previously defined data types inside loop

本文关键字:定义 数据类型 循环      更新时间:2023-10-16

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

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

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

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

如果你能给我指出任何有用的参考资料,那就太好了。提前谢谢。

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

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

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

更新:

我最初的答案是专门告诉你如何清除矢量,但似乎有更好的解决方案。根据您的描述,似乎没有必要将声明移动到循环之外并在末尾清除向量。如果没有额外的代码,我们就无法知道是什么导致了seg故障,以及应该如何正确处理这个问题。