从融合向量的std向量返回列,无需复制
returning column from a std vector of fusion vectors, without copying
我有一个由std::vector
表示的"表",其中每个元素都是boost::fusion::vector
。我需要将该表的"列"的表示形式返回为std::vector
,而不复制任何值。做这件事最好的方法是什么?我正在尝试构建nviews的std::vector
,其中n是列编号,但它似乎不起作用。我是走在正确的轨道上,还是有其他方法可以做到这一点?
根据这里的文档,boost::fusion::vector
的at<N>(s)
方法返回对所包含元素的引用。
此外,如果您使用的是1.48版本的boost库,它们支持C++11的移动语义。这意味着你可以有一个函数,它在表的大小上循环一个特定的列no,比如i
,并填充一个列向量,即std::vector
。然后只返回这个列向量,调用函数就会得到move
和std::vector
。在任何时候都不会复制。
您可以在标准页面上阅读更多关于移动语义的内容。你也可以在这里观看Bjarne Stroustrup简要解释的视频。跳到第37分钟,一直看到第43分钟。
相关文章:
- 将指向给定子类的指针从一个向量复制到另一个向量
- 将字符向量复制到另一个向量
- 将shared_ptr的向量复制到抽象基的派生类
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 自定义类对象的C++向量 - 复制构造函数已删除 - std::ifstream
- 如何在C++中将一个对象从一个向量复制到另一个向量?
- 将特征向量复制到 C 数组
- 将std ::向量复制到CV :: Mat_的行操作相同
- 将向量复制到 std::string
- 如何以相反的顺序将整个向量复制到队列中
- 按索引将类类型元素从一个向量复制到另一个 c++
- 使用迭代器将向量复制到数组中
- 为什么是非法的:将指针向量复制到指向常量的指针向量中
- 将元素从一个向量复制到另一个向量的最有效方法,给定一个不被复制的索引列表
- C++-将数据从浮点向量复制到uint8向量
- 将字符串从向量复制到字符串
- 我可以使用STD ::复制将数据的位模式从整数向量复制到一系列未签名的字符
- 将指针从一个向量复制到另一个向量;地址指出了变化
- 如何将内容从一个字符串向量复制到另一个字符串向量
- 以相反的顺序将一个向量复制到另一个向量