将C++对的向量写入文本文件

Writing C++ vector of pairs to a textfile

本文关键字:文本 文件 向量 C++      更新时间:2023-10-16

我有一个名为vec1pair vector。将其写入文本文件(在 Linux 中(的(最快(方法是什么?

#include <iostream>
#include <utility>   
#include <vector>
#include <fstream>
#include <iomanip> 
int main() {
    std::vector<std::pair<int, std::vector<float>>> vec1 { {1,{0.11,0.12,0.13}},
        {2,{0.14,0.15,0.16}}, {3,{0.17,0.18,0.19}} };    
} 

我正在尝试这样的事情:

std::ofstream fout("file.txt");
fout << std::setprecision(4);
for(auto const& x : vec1)
    fout << x << 'n';

但我收到一个错误:

错误:无法将"std::basic_ostream"左值绑定到"std::basic_ostream&&">

没有内置的插入运算符用于std::pair<T, U>。您可以自己制作一个,也可以手动打印出字段:

for (auto const& x : vec1) {
    fout << x.first << ": "; 
    for (float f : x.second) fout << f << " ";
    fout << 'n';
}