C++编程 - tuple、any容器
2024-10-19 00:21:24
C++编程 - tuple、any容器
flyfish 2014-10-29
一 tuple
tuple是固定大小的容器,每一个元素类型能够不同
作用1 替换struct
struct t1
{
int nID;
double dVal;
};
替换为
typedef std::tuple<int,double> t1;
作用2 随意个数的函数返回值
写法1
std::tuple<int,double> TupleFunction1()
{
std::tuple<int,double> tupRet(0,0); tupRet=std::tuple<int,double>(1,2.1); return tupRet;
}
写法2
std::tuple<int,double> TupleFunction2()
{
return std::make_tuple(1,2.1);
}
调用
auto ret=TupleFunction1();
std::cout<<std::get<0>(ret)<<" "<<std::get<1>(ret)<< std::endl;
二 any
any容器採用boost库中的any
boost::any 仅仅存储一个随意类型的元素
boost::any a=1;
boost::any b=2.1;
借助any建造一种能够存储随意类型且大小动态变化的容器
std::vector<boost::any> v;
v.push_back(1);
v.push_back(2.1);
输出函数
void OutputAny(boost::any a)
{
if (!a.empty())
{
if(a.type() == typeid(int))
{
std::cout<< boost::any_cast<int>(a)<<std::endl;
}
if(a.type() == typeid(double))
{
std::cout<< boost::any_cast<double>(a)<<std::endl;
} }
}
函数调用
for each(auto e in v)
{
OutputAny(e);
}
以上程序在Visual C++2010下编译通过
最新文章
- Android面试一天一题(1Day)
- content相关属性
- Android应用底部导航栏(选项卡)实例
- web前端性能测试小点
- ios Swift 国外资源
- 启动android程序报错
- ArcEngine10在VS2010中编译问题
- POJ - 3249 Test for Job (DAG+topsort)
- 【HDOJ 1085】数学问题,母函数
- hdfs文件系统架构详解
- [转载] Hive结构
- EBS 可拓展的外部信用风险导入
- input标签实现小数点后两位保留小数
- mac终端代理
- Redis操作集合,有序集合
- selenium+java定位163/126邮箱元素显示定位失败解决
- kafka学习指南(总结版)
- 视频处理工具FFmpeg的安装(windows/Linux)
- 曲演杂坛--使用TRY CATCH应该注意的一个小细节
- Cryptography Reloaded UVALive - 4353(BigInteger)
热门文章
- java从Object类型转换成double类型
- Android Studio 2.2 Record Espresso Test
- iOS学习笔记(八)——iOS网络通信http之NSURLConnection
- Linux minilogd占用内存过高及开机启动项修改
- cocos2d-x笔记-CCGLProgram
- Python asyncio文档阅读摘要
- 如何让 Qt 的程序使用 Sleep
- 【java web】Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
- 基于HTML5 Canvas粒子效果文字动画特效
- C语言 &#183; 字符串对比