动态调整大小的不可调整大小的数组
Dynamically sized non resizable array
是否有一种C++类型充当"动态大小的不可调整大小的数组"?可以将这种类型视为以下两种情况之一:
-
vector<T>
但没有resize
、push_back
等。 -
array<T,N>
但N
是动态的而不是静态的。
我不想要一个仅在数组中元素的类型是不可复制类型时才有效的解决方案。我想要一个通用的解决方案。
是的,(几乎(有。 std::unique_ptr<T[]>
.主模板对此情况具有部分专用化,它提供了适当的界面(运算符[]
,没有运算符*
等(
或者,您可以将std::vector
包装在自己的类中并限制其接口。您甚至可以通过使用非公共继承从std::vector
派生类并仅发布其接口的相关部分来做到这一点:
template <class T, class A = std::allocator<T>>
struct FixedVector : private std::vector<T, A>
{
using FixedVector::vector::vector;
using FixedVector::vector::operator=;
using FixedVector::vector::get_allocator;
using FixedVector::vector::at;
using FixedVector::vector::front;
using FixedVector::vector::back;
using FixedVector::vector::data;
using FixedVector::vector::begin;
using FixedVector::vector::cbegin;
using FixedVector::vector::end;
using FixedVector::vector::cend;
using FixedVector::vector::empty;
using FixedVector::vector::size;
using FixedVector::vector::operator[];
};
相关文章:
- 为char数组调整zlib-zpipe
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 当您在此单词中搜索单词时调整字符数组的大小?
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 创建异构顶点数据数组的可移植方法
- 如何在可执行文件中存储常量数组?
- 调整大小和复制哈希表数组中的元素
- 从非类型模板参数声明 constexpr 数组的可移植方法
- 尝试将数组大小调整为 -1
- C++ 中数组(单引号和双引号)的可视常量字符* 与字符
- 使用 std::type T 的数组来构造可从 T 构造的 std::数组
- 将动态分配的数组的大小调整为较小的大小C++
- 将自定义可绘制对象存储在数组中会导致绘制时出现分割错误
- 我的C++程序有问题.涉及动态调整整数数组的大小
- 通过新的后传递后创建的动态数组的错误以调整函数
- 根据另一个数字的可整除性返回子数组中的索引
- 我的数组大小调整代码在新数据上引发异常[size_t]
- 可动态调整大小的字符串数组C++类
- 将数组大小调整为较小的大小,保留相同的名称,删除数组中旧的位置