Boost库中的实用工具类使用入门
来源:互联网 发布:免费level2行情软件 编辑:程序博客网 时间:2024/06/05 00:19
简介:实用工具类开发和维护会耗费程序员的时间。Boost 通过提供几个高质量的库,从而简化了此 过程,您可以将这些库轻松集成到现有的代码库中。本文简单概述一些较流行的 Boost 实用工具类,并 帮助您了解如何将它们投入使用。
实用工具类(utility classes)在几乎任何适当规模的 C++ 项目中都是必需的,但是不存在满足此 需求的标准方法。通常,团队根据他们的需求编写实用工具类代码,但是由于缺少重要的接口信息,使得 相同组织中的其他项目团队无法重用那些类。建议的标准模板库(Standard Template Library,STL)只 具有诸如 hash、stack 和 vector 等少数基本类,因此无法有效地用于取代遗留实用工具库。
本文将介绍几个 Boost 实用工具类,包括 tuple、static_assert、pool、random 和 program_options。您需要对标准 STL 具备一定的了解才能充分理解本文的内容。本文中的所有代码都已 使用 Boost 1.35 来进行了测试并使用 gcc-3.4.4 来进行了编译。
boost::tuple 类
有时,您希望 C++ 函数返回多个不相关的值。在推出 STL 之前,实现此目的的方法是创建所有不相 关变量的结构,并以指针或引用的形式返回它们或作为参数传递给函数——但是任一种方法都不是表达程 序员意图的方法。STL 引入了 pair,可将其用于聚合不相关的数据部分,但它一次只能处理两个数据对 象。为了使用 int、char 和 float 的元组(tuple ),您可以按如下方式返回 pair:
make_pair<int, pair<char, float> > (3, make_pair<char, float> ('a', 0.9));
随着您添加更多的元素,创建元组结构将变得越来越困难。Boost tuple 类型派上了用场。要使用 boost::tuple,您必须包括头文件 tuple.hpp。要执行元组比较和元组 I/O,您需要分别包括 tuple_comparison.hpp 和 tuple_io.hpp。
第一个使用元组的程序
清单 1 使用 int、char 和 float 的元组并打印内容。
清单 1. 创建 Boost 元组并打印内容
#include <iostream>
#include <tuple.hpp>
#include <tuple_comparison.hpp>
#include <tuple_io.hpp>
using namespace boost;
int main ( )
{
tuple<int, char, float> t(2, 'a', 0.9);
std::cout << t << std::endl;
return 0;
}
此代码的输出为 (2 a 0.9)。请注意,<< 运算符重载 std::ostream,以便通过转储每个单独 的 tuple 元素来输出元组。
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门
- Boost 库中的实用工具类使用入门——boost and STL
- boost 库实用工具之optional
- boost库实用工具之assign
- boost实用工具之tribool库
- boost库实用工具之exception
- boost中的实用工具assign和uuid
- c++文件拷贝
- 抽象类可以不包括抽象方法 但是含有抽象方法的类必须是抽象类
- 在liunx中编写一个脚步定期删除mysql中的数据
- mysql安装图解 mysql图文安装教程(详细说明)
- CoreData 数据传输对象DTO(data transfer object)
- Boost库中的实用工具类使用入门
- C++学习摘要之三:继承和派生
- C++学习摘要之四:虚函数和多态
- 配置JBox2D for android遇到的问题以及解决方法
- 相似图片搜索的原理
- JAVA面向对象学习
- 指针迷惑
- C++学习摘要之五:静态成员
- VC++选择文件对话框实现