Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数据类型调用模板方法

如何使用不同的数据类型,而没有为每种类型编写一行代码的开销?

假设有一个接受任何数据类型的模板方法。我希望传入各种数据类型(int、double、string、char、...etc),而不为每种数据类型创建一行。有没有一种高效的方法来遍历不同的数据类型,并为每种数据类型调用模板方法?

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template <typename T>
sorted_vector<T>::sorted_vector( sorted_vector<value_type> const& rhs )
    : beg_( new value_type [rhs.size()] )
    , end_( beg_ + rhs.size() )
    , cap_( end_ )
{
    std::copy( rhs.beg_, rhs.end_, beg_ );
}

所以我的任务是测试有but的模板,但是想检查所有的value_types。我想测试一个向量,等等

EN

回答 3

Stack Overflow用户

发布于 2014-09-24 16:53:13

您可以使用可变模板进行循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Test
{
public:
    template <typename T>
    static void f()
    {
        // Your generic code to execute
        std::cout << typeid(T).name() << std::endl;
    }
};

template<typename F, typename ... Ts>
void Call()
{
    std::initializer_list<int>({ (F::template f<Ts>(), 0)... });
}

然后这样叫它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Call<Test, int, char, char*>();

但我不确定它是否比

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Equivalent to
Test::f<int>();
Test::f<char>();
Test::f<char*>();
票数 1
EN

Stack Overflow用户

发布于 2014-09-24 16:21:01

很难理解你真正在问什么,因为你的问题太宽泛了。我建议研究一下boost::variant,特别是模式‘访问者’是如何在那里实现的。这并不意味着你必须使用这个库,但这可能是一个很好的起点,如何实现这样的逻辑。其他候选者将是std::tupleboost::any

票数 0
EN

Stack Overflow用户

发布于 2014-09-24 16:53:33

听起来像是模板元编程的案例。看看Boost的MPL的前沿:foreach

它们的示例所做的事情与您尝试做的一样:为列表的不同类型和值调用函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
struct value_printer
{
    template< typename U > void operator()(U x)
    {
        std::cout << x << 'n';
    }
};

int main()
{
    for_each< range_c<int,0,10> >( value_printer() );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26021699

复制
相关文章
PowerBI丨送给正在学习的你
可能有很多小伙伴,工作中用到PowerBI的机会并不多,或者使用的场景也并不复杂,因此很多小伙伴都不清楚学习PowerBI的意义和前景在哪,这里白茶简单的描述一下。
PowerBI丨白茶
2021/09/04
1.9K0
PowerBI丨送给正在学习的你
精品丨分页报表—自助化分析与格式化数据
PowerBI的前身是Excel,但是有很多Excel的功能PowerBI并没有完全涵盖,这就导致了有些Excel能做到的,PBI反而做不了。
PowerBI丨白茶
2021/09/04
2.2K0
精品丨分页报表—自助化分析与格式化数据
共享密钥加密与公开密钥加密
加密数据的方法可以分为两种:加密和解密都使用相同密钥的“共享密钥加密”和分别使用不同密钥的“公开密钥加密”。
神奇的程序员
2022/04/10
2.9K0
共享密钥加密与公开密钥加密
微软商业智能系列(一)初识微软BI
随着移动互联网、云计算、物联网和大数据技术的广泛应用,社会已经迈入全新的数据时代。掌握数据资产,进行智能化决策,已成为企业胜出的关键。越来越多的企业开始重视数据战略布局,重新定义自己的核心竞争力,从数据中揭示规律,了解过去、知悉现在、洞察未来,数据驱动企业运行与决策的科学性,构建智慧企业,打造核心竞争力。
黄昏前黎明后
2021/07/20
2.8K0
微软商业智能系列(一)初识微软BI
使用密钥登陆服务器
虽然linux比windows系统好用,安全性能比较高,但是一般我们使用linux实例基本都是裸奔,所以使用密钥登陆也是最安全的,若,修改了端口并使用密钥登陆大大提升被暴力破解或入侵的情况。本篇文章介绍如下两个:
用户14527
2020/11/24
5K0
使用密钥登陆服务器
密钥加密法(指针应用)
有一种方式是使用密钥进行加密的方法,就是对明文的每个字符使用密钥上对应的密码进行加密,最终得到密文
叶茂林
2023/07/28
2650
.NET中的密钥加密
本教程将演示如何通过System.Security.Cryptography在.NET Framework 1.1中实现对称加密/密钥加密。
MelodyS
2018/03/12
3.1K0
.NET中的密钥加密
SQL Server Reporting Services(CVE-2020-0618)中的RCE
SQL Server Reporting Services(SSRS)提供了一组本地工具和服务,用于创建,部署和管理移动报告和分页报告.
洛米唯熊
2020/02/25
1.6K0
SQL Server Reporting Services(CVE-2020-0618)中的RCE
「Azure」数据分析师有理由爱Azure之三-对照Sqlserver学Azure
Sqlserver的内容非常广大,笔者也不是这方面的专家,所以整个系列的文章必须是在一个狭隘的小范围内讨论。
Excel催化剂
2021/08/19
1.4K0
「Azure」数据分析师有理由爱Azure之三-对照Sqlserver学Azure
从 Gartner 2019 评估报告看到底谁赢了谁
2019年,PowerBI 又被评为2019年度全球商业智能市场第一。 诶?为什么要加个“又”字呢~ 因为 2018年,PowerBI 被评为2018年度全球商业智能市场第一。
BI佐罗
2019/09/23
2.1K0
从 Gartner 2019 评估报告看到底谁赢了谁
如何使用PSRansom进行勒索软件安全分析
PSRansom是一款带有C2服务器功能的PowerShell勒索软件模拟工具,该工具可以帮助广大研究人员模拟针对任何操作系统平台(只要安装了PowerShell即可)的通用勒索软件数据加密过程。在C2服务器功能的帮助下,我们甚至还可以通过HTTP从目标设备(客户端)中提取文件,并在服务器端接收信息。
FB客服
2022/04/12
5320
如何使用PSRansom进行勒索软件安全分析
VFP生成随机加密密钥
加菲猫的VFP
2023/08/21
2200
VFP生成随机加密密钥
DH密钥交换非对称加密
迪菲-赫尔曼密钥交换(Diffie–Hellman key exchange,简称“D–H”) 是一种安全协议。 它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。 (1)、算法描述 离散对数的概念: 原根:如果a是素数p的一个原根,那么数值: amodp,a^2 modp,…,a^(p-1) modp 是各不相同的整数,且以某种排列方式组成了从1到p-1的所有整数。 离散对数:如果对于一个整数b和素数p
xiangzhihong
2018/02/01
2.1K0
利用PowerBI结合SCOM展示数据报表
PowerBI是微软基于Office 365的云端商业智能服务,目前只有国际版的O365具备这个功能。利用PowerBI的视觉图标展示,结合SCOM数据仓库,稍做一些数据加工,我们便可以非常清晰的将SCOM的监控数据展示出来,帮助管理员和公司领导了解到账户的安全情况、服务器性能、桌面的工作量,通过数据来帮助我们进行决策。
李珣
2019/03/14
8310
TLS加密套件之密钥交换
TLS是固定格式,一般在ng配置的时候是不需要配置TLS_这一部分的,直接从密钥交换开始算。
西门呀在吹雪
2023/08/10
9520
TLS加密套件之密钥交换
Bytomd 助记词恢复密钥体验指南
Gitee地址:https://gitee.com/BytomBlockchain/bytom
比原链Bytom
2018/10/08
1.2K0
Bytomd 助记词恢复密钥体验指南
使用MySQL Keyring 的 SECRET类型密钥执行非对称加密
以下是一个示例,演示应用程序使用公钥进行非对称加密数据。在MySQL 8.0.19中,添加了支持Keyring技术的SECRET密钥类型。使用此技术,用户可以使用以下方法安全地管理自己的密钥:
MySQLSE
2020/09/28
2K0
微软竟然上传用户磁盘加密密钥到微软服务器中
如果你是用微软账号登录Windows 10,那你得知道,你的电脑会自动上传你的加密密钥。 新的Windows电脑会默认开启自带的磁盘加密功能,保障用户数据,防止电脑被偷或遗失。 但要警惕的是,这个磁盘加密功能跟BitLocker是有区别的,BitLocker允许用户选择是否要在Windows服务器上备份加密密钥。 这个安全功能从Windows 8.1开始就默认开启了,但是如果用户遗失了加密密钥怎么办呢? 微软会保留一份恢复密钥的副本,这引起了广泛的争议,在许多专家们看来,这会导致隐私问题。 The In
FB客服
2018/02/07
2.5K0
微软竟然上传用户磁盘加密密钥到微软服务器中
报表设计丨如何让你的PowerBI看板出彩?
在2020年的时候,白茶分享过<报表设计丨颜色搭配>,很多小伙伴和白茶闲聊的时候都提过,除了色彩搭配这种需要审美的设计,有没有更简单美化报表的方法?答案是:有的!
PowerBI丨白茶
2022/07/23
9790
报表设计丨如何让你的PowerBI看板出彩?
将Azure AD用户导入Power BI,这是进一步分析的前提
不过中间还是有一些波折的,比如从一开始的onmicrosoft邮箱无法发送邮件,到邮箱发送邮件过多导致账号被锁定,还有密码无法更改的,发布到web无法实现的,都一一进行了更正,目前可以良好地满足所有新注册用户。
陈学谦
2021/12/21
1.6K0
将Azure AD用户导入Power BI,这是进一步分析的前提

相似问题

如何在Apps脚本中设置字体权重- Google

12

如何在Google Apps脚本中设置类结构?

17

Google Apps脚本中是否有类似SQL的特性?

20

如何在pandas中设置列

349

如何在Pandas中创建计算列

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文