在我的应用程序的结构中,一个对象具有一个向量是另一个向量的子集是有意义的。我的意思是说,较小的存储包含在较大的存储中。
这在C ++中可能吗?我保证这两个向量都不会被调整大小,并且我可能可以做到这一点,以使子向量在包含向量之前被破坏。
最初,我认为创建从迭代器到大向量的子向量可以解决问题,但这会产生一个副本。我真的想要重定向裸指针。
一言以蔽之。std::vector只是不这样做。但是您可以执行两种类似的操作:
指针的向量(可能是std::shared_ptr),这样一个向量指向另一个元素。当然,现在您有了指向对象而不是对象的指针向量,这可能是一个问题。一种可能的想法是std::reference_wrapper,但这不是很好。
也有std::span针对此用例而设计的。
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |