将二维矢量保存到文本文件中
Save 2-dimensional vector to a text file
我的问题是如何将二维矢量写入文本文件。
我已经关注了这里的主题,下面是我的代码,根据我的需要进行了一些更改:
ofstream output_file("example.txt");
ostream_iterator<int> output_iterator(output_file, "t");
for ( int i = 0 ; i < temp2d.size() ; i++ )
copy(temp2d.at(i).begin(), temp2d.at(i).end(), output_iterator);
我的问题是如何将矢量逐行写入文件?
这就是我想要的:
22 33 44
66 77 88
88 44 22
等等
此代码将矢量的所有元素写入同一行。
谢谢。
一旦复制了行,即在for循环的末尾打印出一个新行字符:
for(...)
{
: // other code
output_file << 'n';
}
如果你有C++11,你可以做一些类似的事情:
std::vector<std::vector<int> > v;
//do with v;
for(const auto& vt : v) {
std::copy(vt.cbegin(), vt.cend(),
std::ostream_iterator<int>(std::cout, " "));
std::cout << 'n';
}
其他明智的典型是你的朋友。
typedef std::vector<int> int_v;
typedef std::vector<int_v> int_mat;
int_mat v;
for(int_mat::const_iterator it=v.begin(); it!=v.end(); ++it) {
std::copy(vt->begin(), vt->end(),
std::ostream_iterator<int>(std::cout, " "));
std::cout << 'n';
}
这是一种方法:
#include <vector>
#include <iostream>
int main(){
std::vector<std::vector<int> > vec;
/* fill the vector ... */
for(const auto& row : vec) {
std::copy(row.cbegin(), row.cend(), std::ostream_iterator<int>(std::cout, " "));
std::cout << 'n';
}
return 0;
}
用gcc --std=c++0x test_vector.cc
编译。
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将文本文件加载到 QListwidget 并将其保存回来
- 按下 QPushbutton 时将文本保存到文件
- 从文本文件读取并保存到列表
- 在 C++ 的文本文件中保存多个输出
- 如何使用 FGETS 获取文本,并保存 std::string
- 如何保存在文本文件中按下的键
- 将浮点数保存在文本文件中,然后从文本文件加载回去(OpenGL和C++)
- 将Space分离的值文本转换为使用C 的.CSV,然后保存
- 如何将文本文件保存到C 中的字符串结构
- 检查一系列单词,形成一个文本文件,保存在字符串vector C 中
- 文本未保存到文件中
- 将简短的int保存在二进制文件中而不是文本文件中
- Qt C++ 如何将加密文本的QByteArray保存到文件中,然后读取并格式化为QByteArray
- HOG描述符矢量布局以及如何将它们保存到文本文件
- 保存/加载对话框文本文件
- C 将字符串从结构保存到文本文件中
- 以二进制形式保存文本文件
- 试图解析保存为std::字符串的大型文本文件
- 正在Sqlite3、c++中保存文本