gpt4 book ai didi

c++ - 存储不同类型的数据c++

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

我正在研究一种模块化数据记录器,它允许记录不同类型的数据。目前我制作了一个 File 类,它是一个模板。为了声明此类的对象,可以这样做:File<double> f("filename.txt")File<float> f("filename.txt") .我希望能够存储用 double 声明的对象或 float作为一个 vector 中的模板参数。有可能做那样的事情吗?我在网上尝试了一种使用 union 的方法:

union typ {
int int_dat;
double double_dat;
float float_dat;
}

并允许我这样声明一个 vector :vector<File<typ> > .但是,这给了我链接器错误。有没有更简单、更清洁的方法来尝试这个?有问题的整个项目是here

编辑:跟进这个。如果我进行此类操作,将如何规避围绕这一事实的问题:

std::vector<File<typ> > files;

File<typ> f("test.txt");
files.push_back(f);
files.at(0) << 35.4;

它会导致编译时错误,据我所知,我猜是:35.4 不是 typ 类型,不能在操作 << 中使用.如何绕过这样的错误?

最佳答案

我认为您的 union vector 可能有一些问题。我没有看过你的完整代码,但请引用:

Questions about vector, union, and pointers in C++

关于c++ - 存储不同类型的数据c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798717/

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