我可以有一个与另一个向量共享存储的向量
Can I have a vector that shares storage with another vector?
在我的应用程序的结构中,一个对象具有一个向量,该向量是另一个向量的子集。我的意思是,较小的存储在较大的存储中包含。
在C 中可能可以吗?我保证不会调整两个向量的大小,并且我可以做到这一点,以便在包含一个矢量之前会破坏子向量。
起初,我认为从迭代器中创建一个子向量到大量向量会做到这一点,但这可以副本。我真的想要重定向裸机。
在一个单词中,不。std::vector
只是不这样做。但是您可以做两件类似的事情:
-
指针的向量(也许是
std::shared_ptr
(,这样一个向量指向另一个元素。当然,现在您有一个指向对象的指针向量,而不是对象,这可能是一个问题。一个可能的想法是std::reference_wrapper
,但不是很好。 -
也有
std::span
,是为此用例制作的。
相关文章:
- 为共享 ptr 向量实现复制 c'tor?
- 字符串共享内存映射的向量
- std::排序在共享指针的向量上
- 将相同共享指针的副本存储在不同的向量中是否是一种好的做法?
- 我可以使用 std::vector::swap 来修改共享向量吗?
- 制作一对共享指针并推送一个向量
- 初始化可变数据结构中的共享指针向量
- 在两个类实例之间共享向量
- 读/写 OpenMP 中的共享向量会减慢程序速度
- 如何将现有对象push_back到共享指针的向量?
- 在向量中使用共享指针来访问类对象
- 如何在共享指针向量中检查重复的"ofstream"对象
- 使用互斥锁和条件变量增强跨内存的进程间共享向量
- 我可以有一个与另一个向量共享存储的向量
- <T>通过引用传输向量<shared_ptr>而不绕过共享语义
- 如何将所有权从一个共享指针向量转移到另一个向量?
- 将向量对象存储在共享指针投掷错误中
- 将共享_ptr的向量转换为shared_ptr的向量到const
- 何时使用共享指针向量,何时使用纯对象向量?
- 与 STL 向量共享数组