将数据列读入矢量

时间:2014-05-04 14:31:44

标签: c++ file vector

我有一个输入文件:

3  5
7  4
10 5
8  2
12 9

如何将这些数字的第一列存储在矢量(3,7,10,5,12)中?数字用空格分隔,如果我在下面执行以下代码,则只有第二列数字存储在向量中而不是第一列。

if (arrivalFile) {
    while (arrivalFile >> first_arrival) {
      myVector.push_back(first_arrival);
    }
    for (int i = 0; i < myVector.size(); i++) {
      myVector.erase(myVector.begin() + (i));
      cout << myVector[i] << endl;
    }
}

4 个答案:

答案 0 :(得分:2)

您需要正确删除偶数位置

但是,最简单的方法是使用dummy变量

int dummy ;
if (arrivalFile) {
    while (arrivalFile >> first_arrival >> dummy ) {
      myVector.push_back(first_arrival);
    }
}

答案 1 :(得分:0)

你可以做到

while (arrivalFile >> first_arrival) {
  myVector.push_back(first_arrival);
  int dummy;
  arrivalFile >> dummy;
}

答案 2 :(得分:0)

无需擦除,只需:

while (arrivalFile >> first_arrival) {
  myVector.push_back(first_arrival);
  int skip;
  arrivalFile >> skip;
}

答案 3 :(得分:0)

将第一个值读入数字,第二个读入虚拟变量(仅用于清空流)。

std::fstream myfile("data.txt", std::ios_base::in);

int number, dummy;
std::vector<int> vNumbers;
// test file open   
if ( myFile) { 
    while ( myfile >> number >> dummy)
    {
        vNumbers.push_back( number);              // insert number into vector
    }
} else {
    throw std::runtime_error( "can't open file"); // signal run time failure
}