C++基础——bitset与vector<bool>
2015-11-04 23:47
639 查看
bitset模板类的一大缺陷(通过其模板形式即知)是:其长度固定,且你必须事先指定其长度。
C++模板库提供了另外一种通过容器的方式实现的操作bit位的机制,也即
C++模板库提供了另外一种通过容器的方式实现的操作bit位的机制,也即
vector<bool>,
vector<T>的一种特化版本。
bitset<sz>与
vector<bool>的一个主要区别在于,bitset拥有一套属于自己的机制,而
vector<bool>遵循的是普通的STL接口规范。虽然不能实现bitset式的按位处理,但仍然可以通过STL算法形式实现类似功能,如
v3 = v1 & v2;:
bool arr[] = {1, 0, 0, 1, 1}; bool arr2[] = {0, 1, 0, 1, 1}; vector<bool> v1(arr, arr+5), v2(arr2, arr2+5); vector<bool> v3(v1.size()); std::transform(v1.begin(), v1.end(), v2.begin(), v3.begin(), std::logical_and<int>()); copy(v3.rbegin(), v3.rend(), ostream_iterator<bool>(cout));
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息