4.4 assign
许多情况下我们都需要为容器初始化或者赋值,填入大量的数据,比如初始错误代码和错误信息,或者是一些测试用的数据。STL容器仅提供了容纳这些数据的方法,但填充的步骤却是相当地麻烦,必须重复调用insert()或者push_back()等成员函数,这正是boost.assign出现的理由。
assign库重载了赋值操作符operator+=、逗号操作符operator,和括号操作符operator(),可以用难以想象的简洁语法非常方便地对STL容器赋值或者初始化。在需要填入大量初值的地方很有用,本书8.1节(第327页)介绍的foreach库和其他很多地方都大量使用了assign,可以做进一步的参考。
assign库位于名字空间boost::assign,为了使用assign库,需要包含头文件<boost/assign.hpp>,它包含了大部分assign库的工具,即:
- #include <boost/assign.hpp>
- using namespace boost::assign;