我正在尝试读取文本文件中有多少个数字,因为未定义总数。 我正在尝试做的是写一个while循环来读取文件,直到没有更多的元素要读取。在while循环中,cin将读入元素并将其推回到矢量数据中。但“我”并未在范围内定义。我如何在范围内声明它,或者有更好的方法吗?
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()
提前感谢您的帮助!
答案 0 :(得分:2)
如果您不知道输入中有多少个数字,您可以使用i
读取所有数字,直到您达到EOF或无效的标记(不是整数)。
所以你不需要变量int
。只需创建一个临时的push_back
读取输入,并vector
将其读入int temp;
while (cin>>temp){
data.push_back(temp);
}
。
List<Agent> duplicates = new HashSet<Agent>(agents.Where(c => agents.Count(x => x.ID == c.ID) > 1)).ToList();
答案 1 :(得分:0)
如果要声明并初始化名为i
的变量,则执行
int i = 0;
但是,data[i]
不起作用,因为矢量中还没有元素。您需要使用data.push_back()
才能添加元素。由于push_back()
将元素添加到列表的末尾,因此根本不需要索引变量。所以无论如何声明都是不必要的。