草庐IT

四元组

全部标签

c++ - 尝试从元组中删除最后一个类型失败

我正在尝试删除元组的最后一个元素。当我在元组中只有一个元素要删除时,它会起作用。但是当我有不止一个时,事情就出错了。我不明白为什么这不起作用。这些是我得到的错误:prog.cpp:Infunction‘intmain()’:prog.cpp:24:22:error:incompletetype‘remove_last>’usedinnestednamespecifierprog.cpp:24:22:error:incompletetype‘remove_last>’usedinnestednamespecifierprog.cpp:24:70:error:templateargumen

c++ - 用于创建 integral_constants 的任意元组的通用实用程序

利用ScottSchurr'sstr_const我有一个constexpr字符串。classStrConst{public:templateconstexprStrConst(constchar(&str)[N]):str_(str),len_(N-1){static_assert(N>1,"notastring");}constexproperatorconstchar*()const{returnstr_;}constexprsize_tsize()const{returnlen_;}constexprcharoperator[](size_ti)const{returni我有另一

c++ - 如何展平异构列表(又名......元组的元组)

我正在尝试使用C++17折叠表达式和C++14索引技巧来展平由元组和非元组组成的任意输入。预期的结果至少应该符合这些要求:constexprautobare=42;constexprautosingle=std::tuple{bare};constexprautonested_simple=std::tuple{single};constexprautomultiple=std::tuple{bare,bare};constexprautonested_multiple=std::tuple{multiple};constexprautomultiply_nested=std::tup

c++ - 将函数应用于元组的每个元素

给定一个类似于std::tuple的对象(即具有定义的tuple_size和get语义)和一个一元仿函数对象ftor,我希望能够在类似tuple的对象的每个元素上调用ftor。如果我忽略返回值,我知道int数组技巧:namespacedetails{templatevoidapply_unary(Ftor&&ftor,Tuple&&tuple,std::index_sequence){usingstd::get;intarr[]={(ftor(get(std::forward(tuple))),void(),0)...};}}//namespacedetailstemplatevoid

c++ - 如何从旧的元组类型和 boost 类型创建新的元组类型?

我有一个元组类型。我想在其中添加一个元素类型以获得新的元组类型。我可以这样做decltypetuple_cat(MyTuple,std::tuple())但是,我在boost::tuple中没有找到tuple_cat,如何在boost中找到? 最佳答案 我假设您希望在编译时完成所有这些。这里是一般性的解释:连接元组类似于连接列表或数组,算法是相同的。在这里,给定元组a和b,我选择移动a的最后一个元素到b的开头,重复直到a是空的。首先:基础结构。下面的结构保存了一个参数包。它可以是任何东西,例如元组:templatestructpac

c++ - 将多个元组应用于同一个函数(即 `apply(f, tuples...)` )而不递归或 `tuple_cat`

std::experimental::apply具有以下签名:templateconstexprdecltype(auto)apply(F&&f,Tuple&&t);它基本上通过扩展t的元素作为参数来调用f。我想要做完全相同的事情,但同时有多个元组:templateconstexprdecltype(auto)multi_apply(F&&f,Tuples&&...ts);示例用法:std::tuplet0{1,2,3};std::tuplet1{4,5,6};autosum=[](auto...xs){return(0+...+xs);};assert(multi_apply(sum

c++ - boost::spirit::气。如何将内联解析器表达式变成独立的语法,以及如何解包它们生成的元组?

我正在使用QI和Phoenix,我想编写一个小语法来返回4个bool值,这些bool值将用作语义操作中函数调用的参数。我有几个函数需要这些东西,到目前为止我已经使用了这种方法:(qi::_bool>>qi::_bool>>qi::_bool>>qi::_bool)[px::bind(&Bool4Function,spirit::_val,spirit::_1,spirit::_2,spirit::_3,spirit::_4)]虽然它本身没问题,但在所有地方使用它都非常丑陋和令人困惑,即使“使用”命名空间部分也是如此。这就是为什么我想将这个表达式提取到一个独立的语法中。所以我尝试了这个(

c++ - 获取元组元素类型的索引?

如果我有一个包含不同元素类型的元组,例如std::tuple如何获取元素类型的索引?templatestructIndex{enum{value=?;}};谢谢。 最佳答案 templatestructIndex;templatestructIndex>{staticconststd::size_tvalue=0;};templatestructIndex>{staticconststd::size_tvalue=1+Index>::value;};SeeitliveatColiru.此实现返回给定类型第一次出现的索引。请求不在元组

稀疏矩阵A、B均采用三元组顺序表表示,验证实现矩阵A快速转置算法,并设计、验证矩阵A、B相加得到矩阵C的算法。

题目:稀疏矩阵A、B均采用三元组顺序表表示,验证实现矩阵A快速转置算法,并设计、验证矩阵A、B相加得到矩阵C的算法。(1)从键盘输入矩阵的行数和列数,随机生成稀疏矩阵。(2)设计算法将随机生成的稀疏矩阵转换成三元组顺序表形式存储。(3)设计算法将快速转置得到的与相加得到的三元组顺序表分别转换成矩阵形式。(4)输出随机生成的稀疏矩阵A、B及其三元组顺序表、快速转置得到的与相加得到的三元组顺序表及其矩阵形式。1、在本次实验中,首先,从键盘输入A,B矩阵的行数与列数并建立稀疏矩阵A和B的信息,然后使两个矩阵相加,再输出A,B矩阵三元组表,转置三元组表。2.演示程序以用户和计算机对话的方式进行,即在计

列表,元组,集合和词典之间有什么区别?

我与列表,元组,套装和词典混淆。给我与您的理解不同,不要给出教科书的定义。看答案列表是特定顺序中的元素序列。您可以使用数值索引访问元素,例如the_list[3]。如果列表包含一个元素为o(n),即与列表的长度成正比,则需要进行多个操作(例如测试)所花费的时间。元组基本上是一份不变的列表,这意味着您无法添加,删除或替换任何元素。一组没有订单,但是与列表相比,如果该集合包含一个元素,则与测试相比,几乎不管集合的大小几乎。它还具有一些方便的操作,例如联合和交叉路口。字典是从键到值的映射,与“键”只能是数字的列表相比,键可以是各种不同对象的映射。所以你可以the_dict={'abc':3,'def