Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::View< Container > Class Template Reference

容器的非拥有视图(可变版本)。 More...

#include <view.h>

Public Types

typedef Iterator iterator
typedef cIterator const_iterator

Public Member Functions

Iterator begin () const
 返回起始迭代器。
Iterator end () const
 返回结束迭代器。
cIterator cbegin () const
 返回常量起始迭代器。
cIterator cend () const
 返回常量结束迭代器。
 View (Container &container)
 构造整个容器的视图。
 View (Container &container, size_t start_pos, size_t end_pos)
 构造容器子区间的视图。
 View (Iterator begin, Iterator end)
 从迭代器对构造视图。
size_t size () const
 返回视图中的元素个数。
auto operator[] (size_t pos) const -> decltype(*begin_)
 无边界检查的下标访问。
auto at (size_t pos) const -> decltype(*begin_)
 带边界检查的下标访问。
Container collect () const
 将视图中的元素复制到一个新的容器中。

Detailed Description

template<class Container>
class console::View< Container >

容器的非拥有视图(可变版本)。

Template Parameters
Container容器类型,必须支持迭代器。

View 不拥有数据,仅保存一对迭代器,可以高效地表示容器的一个连续子区间。 支持迭代器、下标访问、边界检查的 at() 方法,以及 collect() 复制数据到新容器。

Note
需要确保底层容器在视图生命周期内有效。

Member Typedef Documentation

◆ const_iterator

template<class Container>
typedef cIterator console::View< Container >::const_iterator

◆ iterator

template<class Container>
typedef Iterator console::View< Container >::iterator

Constructor & Destructor Documentation

◆ View() [1/3]

template<class Container>
console::View< Container >::View ( Container & container)
inline

构造整个容器的视图。

Parameters
container底层容器(非 const 左值引用)。

◆ View() [2/3]

template<class Container>
console::View< Container >::View ( Container & container,
size_t start_pos,
size_t end_pos )
inline

构造容器子区间的视图。

Parameters
container底层容器。
start_pos起始索引(包含)。
end_pos结束索引(不包含)。

◆ View() [3/3]

template<class Container>
console::View< Container >::View ( Iterator begin,
Iterator end )
inline

从迭代器对构造视图。

Parameters
begin起始迭代器。
end结束迭代器。

Member Function Documentation

◆ at()

template<class Container>
auto console::View< Container >::at ( size_t pos) const -> decltype(*begin_)
inline

带边界检查的下标访问。

Parameters
pos索引。
Returns
元素的引用。
Exceptions
index_error若索引超出范围。

◆ begin()

template<class Container>
Iterator console::View< Container >::begin ( ) const
inline

返回起始迭代器。

◆ cbegin()

template<class Container>
cIterator console::View< Container >::cbegin ( ) const
inline

返回常量起始迭代器。

◆ cend()

template<class Container>
cIterator console::View< Container >::cend ( ) const
inline

返回常量结束迭代器。

◆ collect()

template<class Container>
Container console::View< Container >::collect ( ) const
inline

将视图中的元素复制到一个新的容器中。

Returns
Container 包含视图元素的新容器。

◆ end()

template<class Container>
Iterator console::View< Container >::end ( ) const
inline

返回结束迭代器。

◆ operator[]()

template<class Container>
auto console::View< Container >::operator[] ( size_t pos) const -> decltype(*begin_)
inline

无边界检查的下标访问。

Parameters
pos索引。
Returns
元素的引用。

◆ size()

template<class Container>
size_t console::View< Container >::size ( ) const
inline

返回视图中的元素个数。


The documentation for this class was generated from the following file: