Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
view.h File Reference

提供容器的非拥有视图(View),支持区间切片和便捷的工厂函数。 More...

#include <iostream>
#include <cstddef>
#include <iterator>
#include <string>
#include <vector>
#include "csexc.h"

Go to the source code of this file.

Classes

class  console::View< Container >
 容器的非拥有视图(可变版本)。 More...
class  console::View< const Container >
 容器的非拥有视图(常量版本)。 More...

Namespaces

namespace  console
 本库所有组件所在的顶层命名空间。

Functions

std::ostream & console::operator<< (std::ostream &os, const View< std::string > &sv)
 输出 std::string 视图的内容(直接输出字符串,不添加额外格式)。
template<class T>
std::ostream & console::operator<< (std::ostream &os, const View< T > &v)
 输出任意视图的内容(通过 collect() 转为容器后输出)。
template<class Container>
View< Container > console::make_view (Container &cont)
 创建整个容器的视图(可变版本)。
template<class Container>
View< const Container > console::make_view (const Container &cont)
 创建整个容器的视图(常量版本)。
template<class Container>
View< Container > console::make_view (Container &cont, size_t start, size_t end)
 创建容器子区间的视图(可变版本)。
template<class Container>
View< const Container > console::make_view (const Container &cont, size_t start, size_t end)
 创建容器子区间的视图(常量版本)。
template<class Container>
View< Container > console::make_view (typename Container::iterator begin, typename Container::iterator end)
 从迭代器对创建视图(可变版本)。
template<class Container>
View< const Container > console::make_view (typename Container::const_iterator begin, typename Container::const_iterator end)
 从迭代器对创建视图(常量版本)。
template<class T>
View< std::vector< T > > console::make_view (T *begin, T *end)
 从指针对创建视图(可变版本)。
template<class T>
View< const std::vector< T > > console::make_view (const T *begin, const T *end)
 从指针对创建视图(常量版本)。

Detailed Description

提供容器的非拥有视图(View),支持区间切片和便捷的工厂函数。

View 类是一个轻量级的容器视图,不复制数据,仅保存一对迭代器。 支持范围 for 循环、下标访问、边界检查的 at() 方法,以及 collect() 复制数据到新容器。 同时提供工厂函数 make_view 简化 View 对象的创建。

Author
MrXie1109
Date
2026