如何创建从 C++17 中的可变参数模板推导的类型向量元组?

2024-03-24

我已经实现了一个集合类,它将元组向量转换为向量元组(它本质上是 AOS 到 SOA 的转换)。此代码适用于两个模板类的示例。我试图通过使用可变参数模板使其更加通用。为了做到这一点,我需要为成员变量创建类型m_col。在 C++17 中,是否可以将元组转换为向量元组?所以成员方差的类型m_col在此示例中,将从模板类型自动生成。

template<class T1, class T2>
class Collection
{
    std::tuple<std::vector<T1>, std::vector<T2>> m_col;

public:
    void addRow(const std::tuple<T1, T2>& data)
    {
        std::get<0>(m_col).push_back(std::get<0>(data));
        std::get<1>(m_col).push_back(std::get<1>(data));
    } 

    void show()
    {
        std::cout << std::get<0>(m_col1).size() <<std::endl;
    }
};


int main()
{
    using data_t = std::tuple<int, double>;
    data_t data{1,1.0};
    using col_t = Collection<int, double>;
    col_t col;
    col.addRow(data);    
    col.show();
}

你正在使用 C++17 所以...使用模板折叠和一些怎么样std::apply()?

I mean

template <typename ... Ts>
class Collection
 {
   private:
      std::tuple<std::vector<Ts>...> m_col;

   public:
      void addRow (std::tuple<Ts...> const & data)
       {
          std::apply([&](auto & ... vectors){
                     std::apply([&](auto & ... values){
                                (vectors.push_back(values), ...);},
                                data); },
                     m_col);        
       } 

      void show () const
       {
         std::apply([](auto & ... vectors){
             ((std::cout << vectors.size() << '\n'), ...);}, m_col);
       }
 };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建从 C++17 中的可变参数模板推导的类型向量元组? 的相关文章

随机推荐

  • 如何在javascript中动态构建json数组

    我从 wit ai 收到一个 json 对象 其中包含一些快速回复元素 如下所示 msg So glad to have you back What do you want me to do action id 6fd7f2bd db67
  • 如何获取 ODP.NET 中通过 OracleParameter 传递的绑定变量的跟踪信息?

    经过多次谷歌搜索但没有找到我要找的东西后 我决定问这个问题 我在用着绑定变量正如这篇精彩文章所示2005 titled 具有约束力的价值观 http www oracle com technetwork issue archive 2005
  • 测量时间间隔和乱序执行

    我一直在阅读有关 Java 内存模型的内容 并且我知道编译器可以重新组织语句来优化代码 假设我有以下代码 long tick System nanoTime function or block whose time i intend to
  • 将 Option[x]“转换”为 x

    我正在使用 Scala 2 1 的 play 我需要转换Option Long 价值Long 我知道如何做相反的事情 我的意思是 def toOption Long value Long Option Long if value null
  • 在OpenSSL中使用RSA公钥生成相应的私钥?

    我知道可以使用这个链接 https www ibm com support knowledgecenter en SSWHYP 4 0 0 com ibm apimgmt cmc doc task apionprem gernerate s
  • React-Native:Formik ref 无法获取值

    我在react native中有一个带有formik形式的虚拟登录代码 import React Component from react import TextInput Text Alert Image View TouchableOp
  • 蛋糕模式可以用于非单例样式依赖吗?

    我遇到的大多数蛋糕模式示例似乎都将依赖关系视为单例类型服务 其中 在组件的最终组装中每种类型只有一个实例 当使用蛋糕模式进行依赖注入时 是否可以编写一个具有多个特定类型实例的配置 可能以不同的方式配置 考虑以下组件 通用 HTTP 服务 t
  • 将正则表达式从 .NET 转换为 javascript 时出错

    我有这段 VBNet 代码 我想将其转换为 JavaScript Dim phone check pattern 0 9 1 3 0 9 0 9 x X e E x X t T 0 9 0 9 System Diagnostics Debu
  • 在 bash 脚本中发送邮件输出文字 \n 而不是换行

    我正在使用以下 bash 脚本发送电子邮件 bin bash recipients email protected cdn cgi l email protection email protected cdn cgi l email pro
  • 如何在 IntelliJ IDEA 中运行 Scala 脚本?

    这是一个简单的 Scala 脚本 object test def hi print hi there from here test hi 从命令行它会执行预期的操作 scala shared scaladem src main scala
  • 如何将值应用于函数列表

    我想要实现的是 apply a gt a gt b gt b 这是一种映射的逆 map a gt b gt a gt b 我试过胡格尔 但没有成功 任何人都可以建议一种在 Haskell 中执行此操作的干净方法吗 apply a gt a
  • 如何向 javascript 对象添加键值

    我正在努力学习JS 这看起来很简单 但我不知道该怎么做 拥有基于此的 javascript 对象很好thread https stackoverflow com questions 688097 objects vs arrays in j
  • 如何处理 nil 值变量

    我有如下模型 struc Info Decodable var firstName String var lastName String 在表格视图单元格中显示时 我正在做的事情如下 personName text personArray
  • 使用 APP Store 配置文件导出 iPhone 应用程序时出现“符号工具失败”错误

    成功存档后 在将存档导出到 保存以进行应用商店部署 时 出现以下错误 符号工具失败 在导出过程中 我观察到 二进制和权利 部分有两个条目 1 应用商店 targetAppName 5 个权利 具有有效的配置文件 2 构建文件之一FTALDe
  • 从扩展内获取 Chrome 选项卡的窗口句柄?

    我编写了一个 Chrome 扩展 也带有 NPAPI 允许我的应用程序和 Chrome 相互通信 这一切基本上都工作正常 我现在想做的是将 Chrome 窗口的 HWND 绑定到特定的窗口 ID 和选项卡 ID 当我在 Chrome 中 通
  • 我可以弹出到特定的 ViewController 吗?

    我正在使用基于导航的应用程序 我将第一个 ViewController 推到第二个 ViewController 然后从第二个 ViewController 推到第三个 ViewController 现在我想从第三个 ViewControl
  • 配置配置文件不支持无线配件配置功能

    从 Xcode 7 3 升级到 Xcode 8 后 出现错误 供应配置文件 iOS团队供应配置文件 没有 支持无线配件配置功能 我可以知道如何解决这个问题吗 您应该在苹果的开发者门户中启用它 转到 应用程序 ID 并编辑您的应用程序 检查W
  • Omniauth Facebook 不返回电子邮件和性别栏 4

    我需要从 Facebook 获取姓名 电子邮件 图像和性别 我正在获取姓名和图像 但电子邮件和性别不是从 Facebook 获取的 我这两天都在苦苦挣扎 谁能帮帮我 用户模型 def self from omniauth auth wher
  • 在 Kindle Fire 上调试 Adob​​e AIR 应用程序

    可能的 我认为要做到这一点 我需要将 Fire 上的 AIR 运行时升级到 3 但应用商店中的版本无法安装 据我所知 我无法创建既是强制运行时又是调试的 AIR apk 因此应用程序的调试版本必须在安装的 AIR 运行时上运行 由于 Fir
  • 如何创建从 C++17 中的可变参数模板推导的类型向量元组?

    我已经实现了一个集合类 它将元组向量转换为向量元组 它本质上是 AOS 到 SOA 的转换 此代码适用于两个模板类的示例 我试图通过使用可变参数模板使其更加通用 为了做到这一点 我需要为成员变量创建类型m col 在 C 17 中 是否可以