如何在作用域中声明
How to declare in 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_back
将其放入vector
。
int temp;
while (cin>>temp){
data.push_back(temp);
}
如果要声明并初始化一个名为i
的变量,那么
int i = 0;
然而,data[i]
不能工作,因为向量中还没有元素。您需要使用data.push_back()
来添加元素。由于push_back()
将元素添加到列表的末尾,因此根本不需要索引变量。所以声明是没有必要的。
相关文章:
- 未在作用域中声明unordered_map
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 未在此作用域中声明的函数和变量 (C++)
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 重载时未在 C++ 的作用域错误中声明
- 在 C++ 中使用 "transform" 会给出一个错误,指出这未在作用域中声明
- Tictactoe 游戏变量未在作用域中声明
- 当变量在多个函数作用域中使用时,我应该在类 private 中声明该变量吗?
- 如何在C++中嵌套词法作用域可访问的作用域中声明静态信息?
- gets()未在作用域中声明
- 在C++14中,在哪个作用域中声明了重新声明枚举的非范围枚举器
- C++11 外部作用域变量声明为 auto
- 未在此作用域中声明类 (c++)
- 如何声明在函数作用域中定义的结构
- 未在此作用域中声明函数,即使存在头文件也是如此
- 变量声明中结构的作用域解析是什么意思
- 在C++中,在给定的相同作用域内声明相同的变量名
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 类未在作用域中声明,但已声明该类
- 和使用声明作用域相同的类声明在GCC中编译,但不在MSVS中编译