如何每 3 行将元素添加到成对的向量中?

How to add elements to a vector of pairs every 3rd line?

我正在尝试从看起来像这样的文本制作成对向量:

第 1 行
第 2 行
第 3 行

向量将包含一对 line1line2

另一个向量将包含 line1line3

通常我会像这样向矢量添加线条

    vector<string> vector_of_text;
    string line_of_text;

    ifstream test_file("test.txt");

    if(test_file.is_open()){
        while(getline(test_file, line_of_text)){
            vector_of_text.push_back(line_of_text)
        }

        test_file.close();
    }

但我不知道是否可以使用 getline 命令访问下一行文本。

例如,在数组中,我会对下一个或第三个元素执行 i+1i+2。 我想知道是否有办法用 getline.

做到这一点

如果我没看错的话,你要两个vector<pair<string, string>>

这可能是一种方式:

// an array of two vectors of pairs of strings
std::array<std::vector<std::pair<std::string, std::string>>, 2> tw;

unsigned idx = 0;

std::string one, two, three;

// read three lines
while(std::getline(file, one) && 
      std::getline(file, two) &&
      std::getline(file, three))
{
    // put them in the vector pointed out by `idx`
    tw[idx].emplace_back(one, two);
    tw[idx].emplace_back(one, three);

    // idx will go 0, 1, 0, 1, 0, 1 ... until you can't read three lines anymore
    idx = (idx + 1) % 2;
}

Demo