许多时候,我们需要为容器初始化或者赋值,填入大量的数据;
  STL容器仅提供了容纳这些数据的方法,但是填充的步骤是相当地麻烦(insert、push_back);
  于是,boost::assign出现了,其重载了+= ,()等运算符,用难以想象的简洁对STL容器初始化或赋值.
  +=很好用,但是仅适用于STL的标准容器,对于boost新容器却无能为力;
  ()可以更灵活实现对容器的初始化;
  容器构造的时候就对数据进行填充list_of等.

C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
/*
    许多时候,我们需要为容器初始化或者赋值,填入大量的数据;
    STL容器仅提供了容纳这些数据的方法,但是填充的步骤是相当地麻烦(insert、push_back);
    于是,boost::assign出现了,其重载了+= ,()等运算符,用难以想象的简洁对STL容器初始化或赋值.

+=很好用,但是仅适用于STL的标准容器,对于boost新容器却无能为力;
    ()可以更灵活实现对容器的初始化;
    容器构造的时候就对数据进行填充list_of等.
*/

/************************************************************************/
/* C++ stl Library                                                        */
/************************************************************************/
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>

/************************************************************************/
/* C++ boost Library                                                   */
/************************************************************************/
#include "boost/assign.hpp"

using namespace boost::assign;
using namespace std;

int main(void)
{
    //operator+=
    vector<int> vec;
    vec += 1,2,3,4,5,6*6;

set<string> s;
    s += "c","c++","java","c#";

map<int,string> mInfo;
    mInfo += make_pair(1,"Michael"),make_pair(2,"James");

//operator()
    vector<int> v1;
    push_back(v1) (1) (2) (3) (4) (5);

map<int,string> maps;
    insert(maps) (1,"East") (2,"West");

vector<int> v2;
    push_back(v2), 1,2,3,4,5;
    
    //list_of map_list_of/pair_list_of (tuple_list_of)
    vector<int> vec1 = list_of(1) (2) (3) (4) (5);
    set<int> set1 = (list_of(10), 20,30,40,50);
    map<int,int> map1 = map_list_of(1,1) (2,2) (3,3);
    map<int,string> map2 = pair_list_of(1,"aaa") (2,"bbb");
    
    //减少重复输入 repeat repeat_fun range
    vector<int> vv = list_of(1).repeat(3,2) (4) (5) (6);

//更多内容请感兴趣研究
    //list_of的嵌套使用list_of(list_of())
    //引用初始化列表ref_list_of()  cref_list_of()
    //...

cin.get();
    return 0;
}

转载于:https://www.cnblogs.com/MakeView660/p/7090323.html

boost实用工具:assign库了解学习相关推荐

  1. 67 个节省开发者时间的实用工具、库与资源(前端向)

    在这篇文章中,我不会与大家谈论大型的前端框架,如 React.Angular.Vue 等,也没有涉及那些流行的代码编辑器,如 Atom.VS Code.Sublime,我只想与大家分享一个有助于提升开 ...

  2. 67 个JavaScript和CSS实用工具、库与资源

    在这篇文章中,我不会与大家谈论大型的前端框架,如 React.Angular.Vue 等,也没有涉及那些流行的代码编辑器,如 Atom.VS Code.Sublime,我只想与大家分享一个有助于提升开 ...

  3. boost实用工具:创建一个禁止复制的类 noncopyable

    boost的noncopyable允许创建一个禁止复制的类,使用很简单,但很好用! C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  4. Boost 库中的实用工具类使用入门

    简介: 实用工具类开发和维护会耗费程序员的时间.Boost 通过提供几个高质量的库,从而简化了此过程,您可以将这些库轻松集成到现有的代码库中.本文简单概述一些较流行的 Boost 实用工具类,并帮助您 ...

  5. 原创 私藏的实用工具/学习网站我贡献出来了

    原创 私藏的实用工具/学习网站我贡献出来了 置顶 2019-10-28 14:49:33 帅地 阅读数 14323 文章标签: 资源 分享 程序员 更多 分类专栏: 其他 版权声明:本文为博主原创文章 ...

  6. 【转载】大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

    大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们.主要有:电子书搜索.实用工具.在线视频 ...

  7. 大学四年自学走来,这些私藏的【实用工具/学习网站】我贡献出来了

    大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们.主要有:电子书搜索.实用工具.在线视频 ...

  8. 作为程序员的他,大学四年一直自学,全靠这些实用工具和学习网站

    我这边几乎所有的项目都是通过 Maven 构建的,如果你还不知道怎么配置 Maven,可以查看这篇博客:[Maven入门,读这篇文章就够了]((). [](()06.Dash 平常,你可能会通过 Go ...

  9. 好吧!我摊牌了,我承认我藏私了,我把这些大学四年工作五年的实用工具/学习网站分享出来了

    推荐阅读:2021最适合Java程序员学习路线,面经和面试题1000道 最近一直有同学问我,有哪些实用工具/学习网站,所以今天我精挑细选了一些实用的网站分享给大家,希望能帮助到你们 程序员实用工具网站 ...

最新文章

  1. MySQL进阶SQL优化
  2. VS创建props属性表并在新项目中导入props属性表
  3. 《包青天》中的《鸳鸯蝴蝶梦》单元,剧中有一个很漂亮的女子叫“离垢”
  4. 每日一皮:离职时候的项目交接...
  5. Qt中 QString 和int,double等的转换
  6. 用于Web开发的8 个最好的跨平台编辑器
  7. 因为代言一款游戏 罗永浩和网友吵起来了
  8. python复制文件的代码_python 复制文件流程
  9. CV中的经典网络模型
  10. Visual Studio 2019 v16.4 Preview 2 发布
  11. 前端遮罩层实现_cocos creator--游戏开奖功能组件《刮刮卡》特效实现
  12. thinkphp建站-前后台文件配置
  13. atitit 图像处理 体系树 科技树 v4 r130a .xlsx
  14. 圈圈教你玩usb第一版硬件实物图
  15. 初读《Linux运维之道》浅见
  16. 成人大专计算机自我鉴定300字,自我鉴定300字成人大专
  17. 混合云存储阵列与云存储网关的协同解决方案
  18. 用word宏命令批量修改图片尺寸大小(亲测好用!)
  19. Golang的反射机制(The Laws of Reflection)
  20. Python使用Opencc库完成字符繁简体转换

热门文章

  1. [Groovy] 实战 Groovy, for each 剖析
  2. Linux MySQL5.5的安装
  3. 21个营销机构网站设计案例
  4. (转)你有所不知的HTML發佈Flash的參數(三):base
  5. 练习系列 - 5、求子数组的最大和
  6. 通过结束进程来关闭程序
  7. android 系统重启关机 方法 非常好的一篇文章
  8. php动态删除输入框,jQuery实现动态添加和删除input框实例代码
  9. git迁移MySQL数据库_Centos7下Gitlab迁移数据库mysql过程
  10. android多媒体编程题库,android 仿猿题库答题UI