设为首页 加入收藏

TOP

4.4.6 高级用法
2013-10-07 15:00:20 来源: 作者: 【 】 浏览:64
Tags:4.4.6 高级 用法

4.4.6  高级用法

本节讨论关于assign库的一些高级用法。

list_of()的嵌套使用

list_of()可以就地创建匿名列表,这一点很有用,它可以嵌套在assign库用法中,创建复杂的数据结构。

下面的代码使用vector构造了一个二维数组,使用list_of(list_of())的嵌套形式来初始化:

  1. using namespace boost::assign;  
  2. vector< vector<int> > v = list_of( list_of(1)(2))(list_of(3)(4));  
  3.  
  4. v += list_of(5)(6),list_of(7)(8);  

引用初始化列表

在list_of之外assign库还有两个类似功能的ref_list_of()和cref_list_of(),这两个函数接受变量的引用作为参数来创建初始化匿名列表,较list_of()的效率更高,例如:

  1. using namespace boost::assign;  
  2. int a = 1b = 2c = 3;  
  3. vector<int> v = ref_list_of<3>(a)(b)(c);  
  4. assert(v.size() == 3);  

assign库还特别支持Boost中的指针容器,提供ptr_push_back()、ptr_list_of()等函数。由于本书未涉及指针容器,故在这里不做介绍,感兴趣的读者请阅读Boost说明文档中assign库和pointer container相关部分。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.5.2 交换数组 下一篇4.3.6 高级议题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: