gpt4 book ai didi

c++ - 可变类型 vector 的 vector

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:27 25 4
gpt4 key购买 nike

我目前正在用 C++ 为一个大表实现数据存储。该表需要能够为可变数量的列中的每一列存储不同的数据类型。

每列的类型和长度是定义的和运行时的。因此,我认为,指向 vector 的指针 vector 将是正确的方法。但是,我不知道如何使用可变数据类型执行此操作。

我看了How to get a vector of different vectors in C++但没有动态解决方案。

我对任何其他解决方案持开放态度,我不一定需要 vector ,但该表应在运行时调整大小。

它应该看起来像这样:

0  1  2  3    ...
- - - - -
1 a 0 1.3 ...
2 b 1 2.5 ...
3 c 0 1.5 ...
4 d 0 0.8 ...
5 e 1 1.2 ...
.. .. .. ... ...

我有些人建议使用 boost::any,但我有点不愿意(在效率方面),因为该表必须从磁盘加载大数据包文件。

最佳答案

any在 boost 中实现的类将满足您的需要。

这是一个如何在他们的网站上使用它的例子:

#include <vector>
#include <boost/any.hpp>

using boost::any_cast;
typedef std::vector<boost::any> many;

void append_int(many & values, int value)
{
boost::any to_append = value;
values.push_back(to_append);
}

void append_string(many & values, const std::string & value)
{
values.push_back(value);
}

void append_char_ptr(many & values, const char * value)
{
values.push_back(value);
}

void append_any(many & values, const boost::any & value)
{
values.push_back(value);
}

void append_nothing(many & values)
{
values.push_back(boost::any());
}

关于c++ - 可变类型 vector 的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624155/

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