【问题标题】:Writing C++ vector of pairs to a textfile将 C++ 向量对写入文本文件
【发布时间】:2019-10-27 12:59:34
【问题描述】:

我有一个名为 vec1pairs 中的 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&&’

【问题讨论】:

    标签: c++ c++11 boost stdvector


    【解决方案1】:

    std::pair&lt;T, U&gt; 没有内置的插入运算符。您可以自己制作或手动打印字段:

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

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 2020-12-17
      • 2016-03-14
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多