我正在使用一个外部库,该库有时会给我一个指向整数和大小数组的原始指针。
现在,我想std::vector
用来访问和修改这些值,而不是使用原始指针访问它们。
这是一个解释这一点的人工示例:
size_t size = 0;
int * data = get_data_from_library(size); // raw data from library {5,3,2,1,4}, size gets filled in
std::vector<int> v = ????; // pseudo vector to be used to access the raw data
std::sort(v.begin(), v.end()); // sort raw data in place
for (int i = 0; i < 5; i++)
{
std::cout << data[i] << "\n"; // display sorted raw data
}
预期产量:
1
2
3
4
5
原因是我需要<algorithm>
对该数据应用(排序,交换元素等)算法。
在另一方面改变这种载体的大小将永远不会改变,因此push_back
,erase
,insert
不要求工作在该载体。
我可以根据库中的数据构造一个向量,使用修改该向量并将数据复制回库中,但这将是两个完整的副本,由于数据集可能很大,因此我要避免。
std::vector
工作原理。
sort(arrayPointer, arrayPointer + elementCount);
。
std::vector_view
,不是吗?