没有运营商>>匹配这些操作数......为什么?

时间:2014-03-14 20:55:37

标签: c++ file vector fstream

我在从文件中读取一个int的向量时遇到了一些问题......这是我第一次遇到这种情况而且我已经尝试了所有内容。 这是我的代码的一部分:

#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<vector>
#include<string>
#include<fstream>


int m;
std::vector<int>a[100];
std::vector<int>b[100];
int main()
{
    std::ifstream file("data.in");
    file>>m;
    int i;

    for( i = 0; i<m/2; i++ )
         file>>a[i]>>b[i]; 



    return 0;
}

为什么它不起作用? :(

1 个答案:

答案 0 :(得分:4)

std::vector<int>a[100];

声明一个包含100个向量的数组。因此a[i]是一个向量,而不是int。您无法直接从输入中读取矢量。

如果你想要 size 100的向量,而不是100个向量的数组,语法是

std::vector<int> a(100);