gpt4 book ai didi

c++ - 将类的 vector 写入文件的方法

转载 作者:行者123 更新时间:2023-11-28 00:40:28 29 4
gpt4 key购买 nike

我不确定该如何表达,所以我会尝试将其放入代码中。 (这有很多错误,我知道它不会编译它只是为了展示我想做的事情,因为我无法用语言表达)

    using namespace std; //for correctness sake
class foo {
public:
foo(int a=0, int n=0);
void stuff(int a);
void function(int n);
const int get_function() {return n;}
const int get_stuff(){return a;}
private:
int n, a;
};
struct Store{
public: get_foo(){return vector<f.foo>;} //I'm not too sure of the syntax here but you get the idea
private:
foo f;

}

基本上,我想获取类 foo 中返回的所有信息,并将其格式化后输出到一个文件中。事情是,我需要在文件中制作许多这样的文件,并且它必须能够读回它才有值(value)。因此,仅将每个连续的 foo 类附加到文件中是行不通的(至少我不知道如何操作)。

我尝试使用 ostream重载 <<运算符,但我不确定如何调用它以将其写入文件。欢迎任何建议!谢谢。

最佳答案

我认为你的Store应该是这样的:

struct Store
{
public:
std::vector<foo> get_foo()
{
return f;
}

private:
std::vector<foo> f;
};

重载<<std::ostream :

std::ostream& operator<<(std::ostream& out, const Store& f)
{
for (auto &x : f.get_foo())
out << x.get_function() << ", " << x.get_stuff() << "\n";

return out;
}

//Without auto

std::ostream& operator<<(std::ostream& out, const Store& f)
{
std::vector<foo> q = f;
for (int i=0; i<q.size(); i++)
out << q[i].get_function() << ", " << q[i].get_stuff() << "\n";

return out;
}

关于c++ - 将类的 vector 写入文件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151880/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com