c++ - 如何在范围内声明?

标签 c++ algorithm data-structures scope

<分区>

我正在尝试读取文本文件中有多少数字,因为没有定义总数。 我想要做的是编写一个 while 循环来读取文件,直到没有更多的元素可供读取。在 while 循环内,cin 将读入元素并将被推回到 vector 数据中。但是“i”没有在范围内定义。我如何在范围内声明它,或者是否有更好的方法?

void read_vector(vector<int> &data) {

    cout << "Using read function!" << endl;
    //int i = data.size();
    while (data.size() != 0){
        cin >> data[i];
        data.push_back(data[i]);
    }

} // read_function()

提前感谢您的帮助!

最佳答案

如果您不知道输入中有多少数字,您可以使用 while(cin>>temp) 读取所有数字,直到到达 EOF 或无效标记 (不是整数)。 所以你不需要变量i。只需创建一个临时的 int 读取输入并将其push_backvector 中。

int temp;
while (cin>>temp){
    data.push_back(temp);
}

关于c++ - 如何在范围内声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39582896/

相关文章:

algorithm - 尝试对有向图进行双色处理时,顶点顺序是否重要?

algorithm - AVL树和splay树的区别

c++ - 查找类的成员变量列表及其类型?

c++ - 两个宏的 C/C++ 幂

mysql - 查找/删除大数据中的重复项

根据最终销售额订购 'tag line' 事件的算法

java - 如何找到连接假值二维数组边界的真值路径

java - 同步不经常更新的 hashmap 的最佳方式

c++ - 使用继承时是否需要 "#include"子类父类的头文件。 C++

c++ - ARC 不允许隐式转换 Objective-C 指针