STLvectorbool总结
这里是vector
class template specialization
std::vector
template < class T, class Alloc = allocator
template
这是特别为了当元素类型是bool类型的时候,优化空间所编写的一个vector版本。
这个vector的行为和未特化的vector版本类似,但是有下列的变化。
- 存储的时候存储一列的bool值是没有必要的,编译器可能将每一个bool值存放在一个bit里面以优化存储空间。
- 元素的构造不使用内存分配器,而是直接在内存相应的bit里面设置其值。
- 成员方法flip和新特性的swap方法。
- 一个特别的成员类型,reference,一个类用来在容器存储内存位置访问单个bits的接口,该接口用来模仿bool的reference,反之,成员类型const_reference是一个真正的bool.
- 容器使用的指针以及迭代器类型既不必要指向也不必要符合迭代器。(这句翻译的好怪。。。),即便他们看起来应该模范他们应该做的行为。
这些变化提供了一个离奇的接口给这个特例化的vector,以及促使数据整理时的内存优化(这可能适合也可能不适合你的需要)。在任何情况下,直接实例化vector的非特例化的bool版本是不可能的。避免该限制的变通方法是使用其他的类型(char,unsigned char)或者容器(像deque)的封装类型,或者使用更远的特别的分配器类型。
特例化的版本和未特例化的版本具有相同的成员方法。除了data,emplace以及emplace_back,这些在特例化版本中不会出现。
原文地址:http://blog.csdn.net/qq844352155/article/details/38708201
———————————————————————————————————————————————————
public member class
std::vector ::reference
class reference;
Reference type
这个内部类是vector
原文地址:http://blog.csdn.net/qq844352155/article/details/38709141
———————————————————————————————————————————————————
public member function
std::vector ::flip
- C++98
- C++11
void flip() noexcept;
翻转容器内的所有bit值,即所有的true变为false,所有的false变为true;
Parameters
none
Return value
none
原文地址:http://blog.csdn.net/qq844352155/article/details/38710297
———————————————————————————————————————————————————
public member function
std::vector ::swap
- C++98
- C++11
swap containers (1)
void swap (vector& x);
swap elements (2)
static void swap (reference ref1, reference ref2) noexcept;
第一个swap方法的签名和vector::swap是一样的。
另一个静态的swap方法交换个别的元素(bits)被添加到vector
Parameters
x
另一个vector
ref1, ref2
指向元素的引用,ref1的值将和ref2的值互换。
引用是一个成员类型,使用一个接口来模仿引用来访问单个的bool元素。
Return value
none
原文地址:http://blog.csdn.net/qq844352155/article/details/38710701
——————————————————————————————————————————————————————————————————
//总结的不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。
转载请注明出处:http://blog.csdn.net/qq844352155
author:天下无双
Email:coderguang@gmail.com
2014-8-27
于GDUT
——————————————————————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/stlvectorbool总结/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!