【发布时间】:2015-05-27 06:10:17
【问题描述】:
我有一个很大的向量,我想根据索引提取它的子向量。但我不想制作子向量的新副本。 可以使用指针迭代器返回原向量的指针吗?
类似:
vector<int> orig = { 0,1,2,3,4,5,6,7,8,9 };
vector<int> index = { 3,5,6,8 };
vector<int> dest (vector<int> orig, vector<int> index)
{
....
}
我想要得到的是将 dest 设置为 { 3,5,6,8 } 并且它指向原始副本而不是新副本。 (index是我要从原始向量中提取的索引向量)
或者,我可以使用智能指针吗?
【问题讨论】:
-
指针的问题是一旦向量调整大小它们就会失效。
-
向量是一个连续存储的元素容器;你想要的似乎与那个不兼容。
标签: c++ iterator shared-ptr smart-pointers