首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Boost 3D矢量

Boost 3D矢量
EN

Stack Overflow用户
提问于 2013-06-22 18:29:22
回答 1查看 685关注 0票数 0

我已经声明了一个3D向量vector<vector<vector<boost::variant<string, float>>>> masterList;,它将填充异构数据(字符串和浮点数),这是正确的方式吗?因为稍后我在定义std::vector<vector<string>> tokens;时会遇到masterList.push_back(tokens);指令的问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-22 18:41:33

变体的向量是您需要存储的内容;这与变体类型之一的向量不兼容。换句话说,你可以这样做:

代码语言:javascript
运行
复制
vector<vector<vector<boost::variant<string, float>>>> masterList;
std::vector<vector<boost::variant<string, float>>> tokens;
masterList.push_back(tokens);

但是如果你的数据是这样的,“方差”只发生在外部维度,你可以这样做:

代码语言:javascript
运行
复制
vector<boost::variant<vector<vector<string>>, vector<vector<float>>>> masterList;
std::vector<vector<string>> tokens;
masterList.push_back(tokens);

您可能还需要重新考虑是否需要向量向量的向量的完全灵活性(以及相应的开销)。如果您的数据是矩形的(不是锯齿状的),您可以改善这种情况,如下所示:https://stackoverflow.com/a/17005753/4323

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17249707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档