NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
bitmap类 参考

位图容器 更多...

#include <bitmap.hpp>

类 bitmap 继承关系图:
[图例]

Public 类型

using value_type = bool
 值类型
using pointer = bit_reference*
 指针类型
using reference = bit_reference
 引用类型
using const_pointer = const bool*
 常量指针类型
using const_reference = const bool
 常量引用类型
using size_type = size_t
 大小类型
using difference_type = ptrdiff_t
 差值类型
using iterator = bitmap_iterator<false, bitmap>
 迭代器类型
using const_iterator = bitmap_iterator<true, bitmap>
 常量迭代器类型
using reverse_iterator = _NEFORCE reverse_iterator<iterator>
 反向迭代器类型
using const_reverse_iterator = _NEFORCE reverse_iterator<const_iterator>
 常量反向迭代器类型
using allocator_type = allocator<uint32_t>
 分配器类型

Public 成员函数

NEFORCE_CONSTEXPR20 bitmap () noexcept=default
 默认构造函数
NEFORCE_CONSTEXPR20 bitmap (const size_type word)
 构造函数,指定大小
NEFORCE_CONSTEXPR20 bitmap (const size_type word, const bool value)
 构造函数,指定大小和初始值
NEFORCE_CONSTEXPR20 bitmap (const int32_t word, const bool value)
 32位整数构造函数
NEFORCE_CONSTEXPR20 bitmap (const int64_t word, const bool value)
 64位整数构造函数
NEFORCE_CONSTEXPR20 bitmap (const bitmap &other)
 拷贝构造函数
NEFORCE_CONSTEXPR20 bitmapoperator= (const bitmap &other)
 拷贝赋值运算符
NEFORCE_CONSTEXPR20 bitmap (bitmap &&other) noexcept
 移动构造函数
NEFORCE_CONSTEXPR20 bitmapoperator= (bitmap &&other) noexcept
 移动赋值运算符
template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 bitmap (Iterator first, Iterator last)
 范围构造函数
NEFORCE_CONSTEXPR20 ~bitmap ()=default
 析构函数
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator begin () noexcept
 获取起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator end () noexcept
 获取结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator begin () const noexcept
 获取常量起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator end () const noexcept
 获取常量结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator cbegin () const noexcept
 获取常量起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator cend () const noexcept
 获取常量结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reverse_iterator rbegin () noexcept
 获取反向起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reverse_iterator rend () noexcept
 获取反向结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator rbegin () const noexcept
 获取常量反向起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator rend () const noexcept
 获取常量反向结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator crbegin () const noexcept
 获取常量反向起始迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator crend () const noexcept
 获取常量反向结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type size () const noexcept
 获取位数
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type max_size () const noexcept
 获取最大可能位数
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool empty () const noexcept
 检查是否为空
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type capacity () const noexcept
 获取容量(位数)
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference operator[] (const size_type n)
 下标访问操作符
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference operator[] (const size_type n) const
 常量下标访问操作符
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference front ()
 访问第一个位
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference front () const
 常量版本,访问第一个位
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference back ()
 访问最后一个位
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference back () const
 常量版本,访问最后一个位
NEFORCE_CONSTEXPR20 void reserve (const size_type n)
 预留容量
NEFORCE_CONSTEXPR20 void push_back (const bool value)
 在末尾插入位
NEFORCE_CONSTEXPR20 iterator insert (const iterator &position, const bool value)
 在指定位置插入位
template<typename Iterator>
NEFORCE_CONSTEXPR20 void insert (iterator position, Iterator first, Iterator last)
 范围插入
NEFORCE_CONSTEXPR20 void insert (const iterator &position, const bool *first, const bool *last)
 插入布尔数组范围
NEFORCE_CONSTEXPR20 void insert (const iterator &position, const size_type n, const bool value)
 插入n个相同的位
NEFORCE_CONSTEXPR20 void insert (const iterator &pos, const int32_t n, const bool value)
 插入n个相同的位
NEFORCE_CONSTEXPR20 void insert (const iterator &pos, const int64_t n, const bool value)
 插入n个相同的位
NEFORCE_CONSTEXPR20 void pop_back ()
 删除末尾位
NEFORCE_CONSTEXPR20 iterator erase (const iterator &position)
 删除指定位置的位
NEFORCE_CONSTEXPR20 iterator erase (const iterator &first, const iterator &last)
 删除指定范围内的位
NEFORCE_CONSTEXPR20 void resize (const size_type n, const bool value=bool())
 调整大小
NEFORCE_CONSTEXPR20 void clear ()
 清空位图
NEFORCE_CONSTEXPR20 void swap (bitmap &other) noexcept
 交换两个位图的内容
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== (const bitmap &rhs) const noexcept(noexcept(_NEFORCE equal(this->cbegin(), this->cend(), rhs.cbegin())))
 相等比较操作符
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator< (const bitmap &rhs) const noexcept(noexcept(_NEFORCE lexicographical_compare(this->cbegin(), this->cend(), rhs.cbegin(), rhs.cend())))
 小于比较操作符
Public 成员函数 继承自 icollector< bitmap >
NEFORCE_NODISCARD constexpr decltype(auto) size () const noexcept(noexcept(derived().size()))
 获取集合大小
NEFORCE_NODISCARD constexpr bool empty () const noexcept(noexcept(derived().empty()))
 检查集合是否为空
Public 成员函数 继承自 icomparable< bitmap >
NEFORCE_NODISCARD constexpr bool operator== (const bitmap &rhs) const noexcept(noexcept(derived()==rhs))
 相等比较运算符
NEFORCE_NODISCARD constexpr bool operator!= (const bitmap &rhs) const noexcept(noexcept(!(*this==rhs)))
 不等比较运算符
NEFORCE_NODISCARD constexpr bool operator< (const bitmap &rhs) const noexcept(noexcept(derived()< rhs))
 小于比较运算符
NEFORCE_NODISCARD constexpr bool operator> (const bitmap &rhs) const noexcept(noexcept(rhs< derived()))
 大于比较运算符
NEFORCE_NODISCARD constexpr bool operator<= (const bitmap &rhs) const noexcept(noexcept(!(derived() > rhs)))
 小于等于比较运算符
NEFORCE_NODISCARD constexpr bool operator>= (const bitmap &rhs) const noexcept(noexcept(!(derived()< rhs)))
 大于等于比较运算符

详细描述

位图容器

位图是一种内存高效的布尔值容器,每个元素只占用一个位。 支持随机访问、动态增长和标准容器操作。

在文件 bitmap.hpp343 行定义.

构造及析构函数说明

◆ bitmap() [1/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( )
defaultnoexcept

默认构造函数

构造一个空位图。

被这些函数引用 bitmap(), bitmap(), bitmap(), bitmap(), bitmap(), operator<(), operator=(), operator=(), operator==() , 以及 swap().

◆ bitmap() [2/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( const size_type word)
inlineexplicit

构造函数,指定大小

参数
word位数

构造包含n个位的位置,所有位初始化为false。

在文件 bitmap.hpp693 行定义.

引用了 bitmap() , 以及 fill().

◆ bitmap() [3/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( const size_type word,
const bool value )
inlineexplicit

构造函数,指定大小和初始值

参数
word位数
value初始值

在文件 bitmap.hpp707 行定义.

引用了 fill().

◆ bitmap() [4/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( const int32_t word,
const bool value )
inlineexplicit

32位整数构造函数

参数
word位数
value初始值

在文件 bitmap.hpp721 行定义.

引用了 bitmap().

◆ bitmap() [5/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( const int64_t word,
const bool value )
inlineexplicit

64位整数构造函数

参数
word位数
value初始值

在文件 bitmap.hpp729 行定义.

引用了 bitmap().

◆ bitmap() [6/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( const bitmap & other)
inline

拷贝构造函数

参数
other源位图

在文件 bitmap.hpp736 行定义.

引用了 bitmap(), cbegin(), cend(), empty(), move() , 以及 size().

◆ bitmap() [7/8]

NEFORCE_CONSTEXPR20 bitmap::bitmap ( bitmap && other)
inlinenoexcept

移动构造函数

参数
other源位图

在文件 bitmap.hpp769 行定义.

引用了 bitmap().

◆ bitmap() [8/8]

template<typename Iterator, enable_if_t< is_iter_v< Iterator >, int > = 0>
NEFORCE_CONSTEXPR20 bitmap::bitmap ( Iterator first,
Iterator last )
inline

范围构造函数

模板参数
Iterator迭代器类型
参数
first起始迭代器
last结束迭代器

在文件 bitmap.hpp797 行定义.

成员函数说明

◆ back() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference bitmap::back ( )
inline

访问最后一个位

返回
最后一个位的引用

在文件 bitmap.hpp942 行定义.

引用了 end().

◆ back() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference bitmap::back ( ) const
inline

常量版本,访问最后一个位

返回
最后一个位的常量值

在文件 bitmap.hpp948 行定义.

引用了 cend().

◆ begin() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator bitmap::begin ( ) const
inlinenoexcept

获取常量起始迭代器

返回
指向第一个位的常量迭代器

在文件 bitmap.hpp822 行定义.

引用了 cbegin().

◆ begin() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator bitmap::begin ( )
inlinenoexcept

获取起始迭代器

返回
指向第一个位的迭代器

在文件 bitmap.hpp810 行定义.

被这些函数引用 clear(), front(), insert(), operator[](), rend(), reserve() , 以及 resize().

◆ capacity()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type bitmap::capacity ( ) const
inlinenoexcept

获取容量(位数)

返回
当前分配的存储可容纳的位数

在文件 bitmap.hpp904 行定义.

引用了 BITMAP_WORD_SIZE.

被这些函数引用 insert(), insert() , 以及 reserve().

◆ cbegin()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator bitmap::cbegin ( ) const
inlinenoexcept

获取常量起始迭代器

返回
指向第一个位的常量迭代器

在文件 bitmap.hpp834 行定义.

被这些函数引用 begin(), bitmap(), crend(), front(), operator<(), operator==(), operator[]() , 以及 size().

◆ cend()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator bitmap::cend ( ) const
inlinenoexcept

获取常量结束迭代器

返回
指向最后一个位之后位置的常量迭代器

在文件 bitmap.hpp840 行定义.

被这些函数引用 back(), bitmap(), crbegin(), end(), operator<(), operator==() , 以及 size().

◆ crbegin()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator bitmap::crbegin ( ) const
inlinenoexcept

获取常量反向起始迭代器

返回
指向最后一个位的常量反向迭代器

在文件 bitmap.hpp870 行定义.

引用了 cend().

被这些函数引用 rbegin().

◆ crend()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator bitmap::crend ( ) const
inlinenoexcept

获取常量反向结束迭代器

返回
指向第一个位之前位置的常量反向迭代器

在文件 bitmap.hpp878 行定义.

引用了 cbegin().

被这些函数引用 rend().

◆ empty()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool bitmap::empty ( ) const
inlinenoexcept

检查是否为空

返回
位图是否为空

在文件 bitmap.hpp898 行定义.

被这些函数引用 bitmap().

◆ end() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_iterator bitmap::end ( ) const
inlinenoexcept

获取常量结束迭代器

返回
指向最后一个位之后位置的常量迭代器

在文件 bitmap.hpp828 行定义.

引用了 cend().

◆ end() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator bitmap::end ( )
inlinenoexcept

获取结束迭代器

返回
指向最后一个位之后位置的迭代器

在文件 bitmap.hpp816 行定义.

被这些函数引用 back(), clear(), erase(), erase(), insert(), insert(), insert(), push_back(), rbegin(), reserve() , 以及 resize().

◆ erase() [1/2]

NEFORCE_CONSTEXPR20 iterator bitmap::erase ( const iterator & first,
const iterator & last )
inline

删除指定范围内的位

参数
first起始位置
last结束位置
返回
指向最后一个被删除元素之后位置的迭代器

在文件 bitmap.hpp1092 行定义.

引用了 end().

◆ erase() [2/2]

NEFORCE_CONSTEXPR20 iterator bitmap::erase ( const iterator & position)
inline

删除指定位置的位

参数
position要删除的位置
返回
指向被删除元素之后位置的迭代器

在文件 bitmap.hpp1078 行定义.

引用了 end().

被这些函数引用 clear() , 以及 resize().

◆ front() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference bitmap::front ( )
inline

访问第一个位

返回
第一个位的引用

在文件 bitmap.hpp930 行定义.

引用了 begin().

◆ front() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference bitmap::front ( ) const
inline

常量版本,访问第一个位

返回
第一个位的常量值

在文件 bitmap.hpp936 行定义.

引用了 cbegin().

◆ insert() [1/6]

NEFORCE_CONSTEXPR20 void bitmap::insert ( const iterator & pos,
const int32_t n,
const bool value )
inline

插入n个相同的位

参数
pos插入位置
n插入数量
value插入值

在文件 bitmap.hpp1054 行定义.

引用了 insert().

◆ insert() [2/6]

NEFORCE_CONSTEXPR20 void bitmap::insert ( const iterator & pos,
const int64_t n,
const bool value )
inline

插入n个相同的位

参数
pos插入位置
n插入数量
value插入值

在文件 bitmap.hpp1064 行定义.

引用了 insert().

◆ insert() [3/6]

NEFORCE_CONSTEXPR20 void bitmap::insert ( const iterator & position,
const bool * first,
const bool * last )
inline

插入布尔数组范围

参数
position插入位置
first数组起始指针
last数组结束指针

在文件 bitmap.hpp1015 行定义.

引用了 capacity(), distance(), end() , 以及 size().

◆ insert() [4/6]

NEFORCE_CONSTEXPR20 iterator bitmap::insert ( const iterator & position,
const bool value )
inline

在指定位置插入位

参数
position插入位置
value要插入的值
返回
指向插入位置的迭代器

在文件 bitmap.hpp987 行定义.

引用了 begin() , 以及 end().

被这些函数引用 insert(), insert() , 以及 resize().

◆ insert() [5/6]

NEFORCE_CONSTEXPR20 void bitmap::insert ( const iterator & position,
const size_type n,
const bool value )
inline

插入n个相同的位

参数
position插入位置
n插入数量
value插入值

在文件 bitmap.hpp1035 行定义.

引用了 capacity(), end(), fill() , 以及 size().

◆ insert() [6/6]

template<typename Iterator>
NEFORCE_CONSTEXPR20 void bitmap::insert ( iterator position,
Iterator first,
Iterator last )
inline

范围插入

模板参数
Iterator迭代器类型
参数
position插入位置
first起始迭代器
last结束迭代器

在文件 bitmap.hpp1005 行定义.

◆ max_size()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type bitmap::max_size ( ) const
inlinenoexcept

获取最大可能位数

返回
最大位数

在文件 bitmap.hpp892 行定义.

◆ operator<()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool bitmap::operator< ( const bitmap & rhs) const
inlinenoexcept

小于比较操作符

参数
rhs右侧位图
返回
按字典序比较结果

在文件 bitmap.hpp1147 行定义.

引用了 bitmap(), cbegin(), cend() , 以及 lexicographical_compare().

◆ operator=() [1/2]

NEFORCE_CONSTEXPR20 bitmap & bitmap::operator= ( bitmap && other)
inlinenoexcept

移动赋值运算符

参数
other源位图
返回
自身引用

在文件 bitmap.hpp782 行定义.

引用了 addressof(), bitmap() , 以及 swap().

◆ operator=() [2/2]

NEFORCE_CONSTEXPR20 bitmap & bitmap::operator= ( const bitmap & other)
inline

拷贝赋值运算符

参数
other源位图
返回
自身引用

在文件 bitmap.hpp756 行定义.

引用了 addressof(), bitmap() , 以及 swap().

◆ operator==()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool bitmap::operator== ( const bitmap & rhs) const
inlinenoexcept

相等比较操作符

参数
rhs右侧位图
返回
如果两个位图大小相等且对应位相等返回true

在文件 bitmap.hpp1137 行定义.

引用了 bitmap(), cbegin(), cend(), equal() , 以及 size().

◆ operator[]() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reference bitmap::operator[] ( const size_type n)
inline

下标访问操作符

参数
n索引
返回
指定位置的位的引用

在文件 bitmap.hpp913 行定义.

引用了 begin().

◆ operator[]() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reference bitmap::operator[] ( const size_type n) const
inline

常量下标访问操作符

参数
n索引
返回
指定位置的位的常量值

在文件 bitmap.hpp922 行定义.

引用了 cbegin().

◆ push_back()

NEFORCE_CONSTEXPR20 void bitmap::push_back ( const bool value)
inline

在末尾插入位

参数
value要插入的值

在文件 bitmap.hpp973 行定义.

引用了 end().

◆ rbegin() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator bitmap::rbegin ( ) const
inlinenoexcept

获取常量反向起始迭代器

返回
指向最后一个位的常量反向迭代器

在文件 bitmap.hpp858 行定义.

引用了 crbegin().

◆ rbegin() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reverse_iterator bitmap::rbegin ( )
inlinenoexcept

获取反向起始迭代器

返回
指向最后一个位的反向迭代器

在文件 bitmap.hpp846 行定义.

引用了 end().

◆ rend() [1/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 const_reverse_iterator bitmap::rend ( ) const
inlinenoexcept

获取常量反向结束迭代器

返回
指向第一个位之前位置的常量反向迭代器

在文件 bitmap.hpp864 行定义.

引用了 crend().

◆ rend() [2/2]

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 reverse_iterator bitmap::rend ( )
inlinenoexcept

获取反向结束迭代器

返回
指向第一个位之前位置的反向迭代器

在文件 bitmap.hpp852 行定义.

引用了 begin().

◆ reserve()

NEFORCE_CONSTEXPR20 void bitmap::reserve ( const size_type n)
inline

预留容量

参数
n要预留的位数

确保位图至少有n位的容量。

在文件 bitmap.hpp956 行定义.

引用了 begin(), capacity(), end() , 以及 move().

◆ resize()

NEFORCE_CONSTEXPR20 void bitmap::resize ( const size_type n,
const bool value = bool() )
inline

调整大小

参数
n新的大小
value用于填充新元素的默认值

在文件 bitmap.hpp1102 行定义.

引用了 begin(), end(), erase(), insert() , 以及 size().

◆ size()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type bitmap::size ( ) const
inlinenoexcept

获取位数

返回
位图中的位数

在文件 bitmap.hpp886 行定义.

引用了 cbegin() , 以及 cend().

被这些函数引用 bitmap(), insert(), insert(), operator==() , 以及 resize().

◆ swap()

NEFORCE_CONSTEXPR20 void bitmap::swap ( bitmap & other)
inlinenoexcept

交换两个位图的内容

参数
other要交换的另一个位图

在文件 bitmap.hpp1119 行定义.

引用了 addressof(), bitmap() , 以及 swap().

被这些函数引用 operator=() , 以及 operator=().


该类的文档由以下文件生成: