從向量中提取子向量
在 C 中,std::vector 是儲存連續元素序列的容器。如果您需要從一個大向量中提取元素子集來建立一個新向量該怎麼辦?
要建構一個由元素 X 到 Y 組成的新向量,可以使用以下步驟:
vector<T>::const_iterator first = myVec.begin() + X; vector<T>::const_iterator last = myVec.begin() + Y + 1;
vector<T> newVec(first, last);
這個方法需要O(N) 時間來建構新向量向量,但對於大向量來說是有效的。如果需要建立原始向量中其他元素的副本,可以使用std::copy :
vector<T> newVec(Y - X + 1); std::copy(first, last, newVec.begin());
如果原始向量非常大,而你只需要其中的一部分,則可以考慮使用std::deque 而不是std::vector。 std::deque 支援兩端高效率插入和刪除,更適合動態子向量擷取。
以上是如何有效地從 C std::vector 中提取子向量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!