- 浏览: 768644 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
tuple(元组):定义了一个有固定数目元素的容器,其中的每个元素类型都可以不相同,这与其他容器有着本质的区别。它是std::pair的泛化,可以从函数返回任意数值的值。
tuple默认最多支持10个模板类型参数,也就是说它最多能容纳10个不同类型的元素。
tie()可以方便地利用现有普通变量创建一个可赋值的tuple对象,因此可以对tuple执行"解包"操作.
tuple默认最多支持10个模板类型参数,也就是说它最多能容纳10个不同类型的元素。
tie()可以方便地利用现有普通变量创建一个可赋值的tuple对象,因此可以对tuple执行"解包"操作.
#include<boost/tuple/tuple.hpp> #include<string> #include<iostream> using namespace boost; using namespace std; int main() { tuple<int,string,char> t(1,"abc",'d'); t = make_tuple(2,"def",'g'); cout << t.get<0>()<<endl; for(int i=0;i<3;++i){ //这是错误的,get<>()是一个模板函数,编译进行模板实例化时要求模板参数 //<int N>必须是编译期可确定的,而for循环中的变量i只能在运行时确定,因而 //无法编译代码 //cout << t.get<i>() << endl;// error: ‘i’ cannot appear in a constant-expression } int i; string s; char c; tie(i,s,c) = t; cout <<"i,s,c:"<<i<<","<<s<<","<<c<<endl; tie(i,s) = make_tuple(3,"aaa");//make_tuple cout <<"std::pair:i,s"<<i<<","<<s<<endl; //tuples::ignore相当于占位符,可以忽略某些对象,如下只接收string值 tie(tuples::ignore,s) = make_pair(4,"bbb");//make_pair cout << s << endl; } 2 i,s,c:2,def,g std::pair:i,s3,aaa
发表评论
-
multi_index_container
2018-08-11 13:04 462根据不同的类中不同的字段排序 #include < ... -
program_options读命令行和配置文件
2018-07-27 11:30 873#include <boost/program_opti ... -
centos下boost安装
2014-03-27 09:28 1069./booststarp.sh //这里的一些错误不用管 ... -
GC的改良
2013-10-17 22:05 583分代回收:对分配不久,诞生时间较短的“年龄”对象进行重点扫描, ... -
GC与引用记数
2013-10-16 21:57 702根(Root)就是判断对象是否可被引用的起始点。至于哪里才是根 ... -
boost 信号槽
2011-06-08 23:43 2327#include<boost/signals2.hp ... -
boost bind
2011-06-07 15:28 1691bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定 ... -
boost reference_wrapper
2011-06-05 21:07 1568reference_wrapper是一个引用类型的包装器 ... -
元编程
2011-06-02 22:46 935元编程的最大特点在于:某些用户自定义的计算可以在程序翻译期进行 ... -
参数化虚拟性
2011-06-02 22:17 868#include<iostream> usi ... -
boost any与variant
2011-05-31 15:55 2434any:是一种只能容纳一个元素的容器,但这个元素可以是任意类型 ... -
traits
2011-05-30 16:43 794#include<iostream> usi ... -
动静多态
2011-05-30 15:40 1071由于继承||虚函数在运行期进程处理,这种多态叫动多态。 模板允 ... -
局部特化
2011-05-29 16:27 1037局部特化并不会引入一个新的模板,它只对原来模板(基本模板)进行 ... -
类模板与模板类
2011-05-29 16:08 7101.类模板:该类是一个模板,他代表的是:整个类家族的参数化描述 ... -
boost array
2011-05-27 00:06 935array本质上是一个对静态数组的包装,没有构造函数,不能指定 ... -
单元测试
2011-05-23 22:00 893test库提供了一个最小化的测试套件minimal test. ... -
boost StaticAssert
2011-05-23 21:42 941static_assert库把断言的诊断时刻由运行期提前到编译 ... -
boost正则表达式
2011-05-17 23:10 2804xpressive是boost的正则表达式库,它比boost. ... -
为什么模板要写在.h里面
2011-05-13 18:02 1113//test.h template<typena ...
相关推荐
Boost库中的`Tuple`是C++社区广泛使用的工具,因为它提供了灵活且类型安全的方式来组合和传递多个值。本篇文章将探讨如何实现一个类似于Boost的`Tuple`功能,并介绍与之相关的编程知识点。 首先,`Tuple`的基本概念...
4. **标准化推动者**:许多Boost库如`shared_ptr`、`unique_ptr`、`tuple`、`lambda`等已进入C++11标准库。 二、Boost库的主要组件: 1. **Boost.And.STL学习资料**:这是一份关于如何结合使用Boost库和STL...
THE BOOST C++ LIBRARIES是一份...14.2 Boost.Tuple 14.3 Boost.Any 14.4 Boost.Variant 14.5 Exercises Chapter 15: Error Handling 15.1 General 15.2 Boost.System 15.3 Boost.Exception Chapter 16: Cast Operators
2. **标准库前驱**:许多Boost库已被采纳进入C++标准库,如`shared_ptr`、`unique_ptr`、`variant`和`tuple`等。 3. **跨平台**:Boost库在多种操作系统和编译器上都能良好运行,包括Windows、Linux、Mac OS X等。 4...
4. **增强的std::pair——TupleTypes**:了解`boost::tuple`如何提供比`std::pair`更强大、更灵活的元组类型。 #### 五、总结 通过本文的学习,我们了解到Boost库是一个功能强大且极其有用的C++库集合。无论是初学...
- **Tuple**:固定大小的复合类型,可以存储不同类型的数据成员。 ### 函数对象与高级编程 这部分讨论了Boost中用于支持函数式编程和高级编程模式的库。 - **Bind**:用于创建可调用对象,这些对象可以绑定到特定...
7. Tuple:元组库允许程序员创建和操作固定大小的、异质的值集合。这在函数返回多个值时特别有用,省去了定义结构体或类的麻烦。 Boost库的其他部分还包括对数据结构、容器、迭代器、算法、函数对象、泛型编程、...
Boost库的核心目标是推动C++标准的发展,并且很多Boost库最终被纳入到了C++标准库中,例如`shared_ptr`、`unique_ptr`、`bind`、`lambda`、`variant`和`tuple`等。下面将详细探讨一些在`boost_1_34_0`中重要的库和...
这个库在早期的版本中, Boost 库包含了它,但后来为了保持 Boost 的精简和避免命名空间冲突,Boost.PFR被移出,不再在boost命名空间下使用。因此,我们有了“没有boost命名空间的Boost.PFR”。 Boost.PFR库的核心...
Array(固定大小数组),Compressed_pair(压缩对),Dynamic_bitset(动态位集),Graph(图算法),Iterator(迭代器工具),MultiArray(多维数组),Multi-index(多索引容器),Range(范围操作),Tuple(元组...
2. **容器**(Containers):如`multi_array`提供多维数组,`fusion`则与C++11的`std::tuple`类似,但提供了更丰富的操作。 3. **算法**(Algorithms):Boost提供了一套扩展的算法库,如`assign`用于快速填充容器...
6. **容器和泛型编程**(Containers and Generic Programming):如`multi_array`用于多维数组操作,`tuple`提供类似元组的数据结构,`mpl`则提供了元编程库。 7. **日志库**(Logging):提供了灵活的日志记录框架...
由于Boost库的广泛采用,许多优秀的实现已被采纳进入C++标准库,例如`smart_ptr`、`tuple`和`regex`。 总的来说,Boost C++库是C++程序员的强大工具箱,无论是开发大型企业级应用还是进行研究项目,都能从中受益。...
10. **Boost.Tuple**:提供了一种更灵活的数据结构来存储多个不同类型的值。 #### 三、Boost库的安装与配置 - **Windows平台**:可以通过预编译的二进制包进行安装,也可以使用CMake等工具进行自定义编译。 - **...
Boost在这一领域也贡献颇多,其中最为人熟知的是`boost::array`、`boost::multi_array`、`boost::tuple`、`boost::variant`等容器。这些容器提供了更灵活的选择,比标准库中的容器更加多样化,能够满足不同场景下的...
在"boost1.57 libs源代码第二部分"中,包含了一些核心的Boost组件,如signals、logic、smart_ptr、log、thread、polygon、tuple、pool、parameter和phoenix。以下是对这些组件的详细解释: 1. **signals**:Boost....
汉化 boost 文档,致力 boost 推广。 如果你对本项目有兴趣,欢迎加入,相关说明请查阅项目论坛: https://groups.google.com/ 到目前为止,各人贡献的译文如下: 贡献者 贡献的译文 alai04 accumulators, any, ...
- **Boost.Tuple**:提供固定大小的元组类型。 #### Smart_ptr库 - **scoped_ptr**:拥有一个非共享资源的所有权,并在其作用域结束时自动释放资源。 - **scoped_array**:与scoped_ptr类似,但管理的是数组资源。...