问题标签 [boost-tuples]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - `boost::make_tuple` 会复制吗?
我的代码中有这样的东西
我的问题是boost::make_tuple
复制 objA 和 objB 吗?
c++11 - 如何使用元组和可变参数模板创建复杂类型
首先,我不是一个非常熟练的 C++11 和模板程序员,我读了很多帖子,但我不知道如何写我的想法(如果可能的话),说,这是我的想法。
我的想法是创建一个复杂的编译器时类型,我试图遵循这个规则
- 像结构一样定义,我的意思是逐个字段(没有语法限制),例如像这样的东西。
- 每个字段类型将是以下类型之一:int、short、long、byte、bool 和 std::string。
- 这是棘手的部分,我想要一个元组,其中每个位置都是对每个字段的引用,这样我可以逐个字段访问存储的数据或获取一个元组。我使用 std::tuples 或 boost::tuples 没有问题。
欢迎每一个建议、示例、建议和任何其他评论,我正在努力学习如何做到这一点。
提前致谢
此致
编辑:我可以给你我试图这样做的代码,也许不是最好的方法,所以我愿意接受建议。
这段代码不编译,错误是由类型“tuple_t”和“tuple_t data”的声明引起的
问候
c++ - 如何初始化非默认构造的不可复制对象的元组?
给定一些具有参数化构造函数的类,例如:
如何正确初始化此类类的元组?
不使用 A 或 B 的复制构造函数,如果可能,也不使用移动构造函数。如果可能,首选 C++03 解决方案。
c++ - no == 为 boost::tuples 定义
我有这个代码:
但是当我尝试编译它时,我收到了这个错误:
为什么会发生这种情况,因为noRef
它是这个案例的别名boost::tuple
并且tuple_comparison
应该管理这个案例?
发现错误,不知道如何解决:
似乎错误是在std::tie
操作中。所以重写为:
工作正常。问题是这种解决方案效率低下,因为key
它可能是整个元组的昂贵副本,而使用tie
的是引用元组(小得多)。那么,我怎样才能引用it->first
元组呢?我应该使用相同的tie
技巧吗?
python - 将元素附加到 boost::python::tuple
我正在尝试从boost::python::tuple
对象中删除第二个元素。我要从中删除第二个元素的元组是传递给 Python 函数调用的参数列表。
要删除我这样做的元素:
我认为问题在于boost::python::tuple
没有添加元素,但它创建了一个新的元组,其中第一个和第二个切片作为元素。
我该如何解决这个问题?
stdmap - 使用 boost::tuple 作为键的映射查找
我想了解如何在地图中查找 boost::tuple 形式的键,其中Compare=std::less
. 例如,这是我正在处理的代码片段:
在向映射中插入值时,假设s1
isabc
和s2
is xyz
。在查找期间,如何确定键匹配?
是否分别对和分别进行字符串比较s1
和s2
完成?如果是这样,是否使用了比较运算符?abc
xyz
std::string
谢谢!
c++ - 为什么 std::tuple 不能用兼容类型的 std::tuple 逐元素构造?
我无法从兼容类型中std::tuple
逐元素初始化元素。std::tuple
为什么它不能像 with 一样工作boost::tuple
?
Live on Coliru(GCC 或 Clang 和 libstdc++ 无法编译,但是Clang 和 libc++ 编译没有错误)
std::tuple
没有进行元素构造,它实例化Foo<int>::Foo<std::tuple<int>>
而不是Foo<int>::Foo<int>
. 我认为std::tuple::tuple
超载没有。4 和 5正是为此目的:
笔记:
不参与重载决议,除非
std::is_constructible<Ti, const Ui&>::value
是true
for alli
。
std::is_constructible<Foo<int>, int>::value
是true
。从 GCC 模板错误中,我可以看到重载号。3:
而是选择。为什么?
c++ - 在 boost 元组向量中查找元素的位置
我正在迭代 boost::tuples 的向量以找到一个元素。但是,我还想找到该元素在向量中的确切位置,以便稍后将其删除。这是代码,但是 std::distance 没有给我正确的值。
例如对于大小等于 5 的向量,std::distance 是 8!
为什么?我的代码中的错误在哪里?
c++ - 使用 std::get、std::tuple_size、std::tuple_element 对元组的组件求和
我有一个自定义类,它有一个类似元组的接口。因为我希望我的代码尽可能通用,所以我认为将我的算法基于函数std::get
,是一个好主意std::tuple_size
,std::tuple_element
因此您只需专门化这些函数即可使用我的算法。让我们将需要这些函数特化的概念称为Tuple
。
现在我试图总结 a 的组成部分Tuple
。函数声明应该是这样的:
我想这涉及到很多模板编程,但我就是不知道该怎么做。
除此之外,我只会使用全局的重载+ operator
。
我正在使用 c++1z。
c++11 - 在不同类型的容器之间复制数据
我正在尝试将数据从一种容器类型复制到另一种容器类型,容器都是二维向量,我使用 boost::combine 和 boost::tie 来迭代容器,代码构建良好但抛出 bad_alloc 时跑。我无法理解为什么像下面这样的简单代码会抛出 bad_alloc,我做错了什么?当容器是多维的时,还有哪些其他策略可以在容器之间复制数据。