是否有任何 STL 容器实现由自定义缓冲区支持的固定大小向量并允许我执行以下操作:
int arr[] = {1, 2, 5, 12, 34, 12, 56, 12};
std::mysteryvector<int> vec(arr + 2, 3); // <-- No copy here, and 3 can be a variable
// (no compile-time template parameter)
std::cout << *vec.begin() << std::endl; // prints 5
std::cout << vec.size() << std::endl; // prints 3
// There is no push_back() or resize(), but size(), begin(), end(), etc.
// work as in std::vector
arr[4] = 1212;
std::cout << vec[2] << std::endl; // prints 1212
还是我应该自己实施?是否std::vector
推荐使用自定义分配器之类的技巧/解决方法?
编辑。为什么?与假定存在 , , 的遗留代码的兼容性size()
,begin()
但end()
不[]
调用push_back()
.