设为首页 加入收藏

TOP

4.4.1 使用操作符+=向容器增加元素
2013-10-07 15:00:47 来源: 作者: 【 】 浏览:68
Tags:4.4.1 使用 操作 容器 增加 元素

4.4.1  使用操作符+=向容器增加元素

boost.assign的用法非常简单,由于重载了操作符+=和逗号,可以用简洁到令人震惊的语法完成原来用许多代码才能完成的工作,如果不熟悉C++(www.cppentry.com)操作符重载的原理你甚至都不会意识到在简洁语法下的复杂工作。

使用assign库时必须使用using指示符,只有这样才能让重载的+=,等操作符在作用域内生效。例如:

  1. #include <boost/assign.hpp> 
  2. int main()  
  3. {  
  4.     using namespace boost::assign;                  //很重要,启用assign库的功能  
  5.     vector<int> v;                                  //标准向量容器  
  6.     v += 1,2,3,4,5, 6*6;                            //用operator+=和,填入数据  
  7.  
  8.     set<string> s;                                  //标准集合容器  
  9.     s += "cpp", "java", "c#", "python";  
  10.  
  11.     map<int, string> m;                             //标准映射容器  
  12.     m += make_pair(1, "one"),make_pair(2, "two");  
  13. }  

上面的代码示范了assign库操作标准容器的能力。+=操作符后可以接若干个可被容器容纳的元素,元素之间使用逗号分隔。元素不一定是常量,表达式或者函数调用也是可以接受的,只要其结果能够转换成容器可容纳的类型。比较特别的是map容器,必须使用make_pair()辅助函数来生成容器元素,单纯地用括号把pair的两个成员括起来是无效的。

operator+=很好用,但有一点遗憾,它仅限应用于STL中定义的标准容器(vector、list、set等),对于其他类型的容器(如Boost新容器)则无能为力。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.4.2 使用操作符()向容器增加元素 下一篇4.6.2 boost.serialzation的单件..

评论

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