ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::base::range_n::bitmark_for_finds< T > 模板结构体 参考

bitmark提供了一种快速进行四种泛搜索的实现,前提是构建中的pattern中的每一项的usigned表示都在一个字节(表长)内。 若bitmark构建失败,程序应当使用正在进行的泛搜索的朴素实现版本。 更多...

Public 类型

typedef unsigned char index_type
 

Public 成员函数

 bitmark_for_finds () noexcept=default
 
constexpr bool mark (const array_like_view_t< T > &pattern) noexcept
 
constexpr bool operator[] (T &index) const noexcept
 

Public 属性

bool _bitmark [number_of_possible_values_per< index_type >] {}
 

详细描述

template<typename T>
struct elc::defs::base::range_n::bitmark_for_finds< T >

bitmark提供了一种快速进行四种泛搜索的实现,前提是构建中的pattern中的每一项的usigned表示都在一个字节(表长)内。 若bitmark构建失败,程序应当使用正在进行的泛搜索的朴素实现版本。

在文件 all_defs.cpp11350 行定义.

成员类型定义说明

◆ index_type

在文件 all_defs.cpp11351 行定义.

构造及析构函数说明

◆ bitmark_for_finds()

template<typename T >
elc::defs::base::range_n::bitmark_for_finds< T >::bitmark_for_finds ( )
defaultnoexcept

成员函数说明

◆ mark()

template<typename T >
constexpr bool elc::defs::base::range_n::bitmark_for_finds< T >::mark ( const array_like_view_t< T > &  pattern)
inlineconstexprnoexcept

在文件 all_defs.cpp11355 行定义.

11355 {
11357 for(auto& i: pattern){
11358 if(::std::make_unsigned_t<T>(i) >= number_of_possible_values_per<index_type>)
11359 return false;
11360 _bitmark[index_type(i)] = true;
11361 }
11362 }
11363 else{
11364 for(auto& i: pattern)
11366 }
11367 return true;
11368 }
constexpr T down_cast(U a) noexcept
向下转型至
bool _bitmark[number_of_possible_values_per< index_type >]
这是这个函数的调用关系图:

◆ operator[]()

template<typename T >
constexpr bool elc::defs::base::range_n::bitmark_for_finds< T >::operator[] ( T &  index) const
inlineconstexprnoexcept

在文件 all_defs.cpp11369 行定义.

11369 {
11371 if(::std::make_unsigned_t<T>(index) >= number_of_possible_values_per<index_type>)
11372 return false;
11373 return _bitmark[index_type(index)];
11374 }

类成员变量说明

◆ _bitmark

在文件 all_defs.cpp11352 行定义.

11352{};

该结构体的文档由以下文件生成: