從向量中高效提取子向量
假設你想提取向量的一部分,創建一個包含元素X 的新向量Y. 在帶有標準庫向量的 C語言中,最直接的方法是使用迭代器:
vector<T>::const_iterator first = myVec.begin() + X; vector<T>::const_iterator last = myVec.begin() + Y + 1; vector<T> newVec(first, last);
此操作的時間複雜度為 O(N),其中 N 是原始向量的大小。但是,需要注意的是,沒有一種更有效的方法可以使用向量來實現此目的。
替代 STL 資料型別
如果您需要擷取子向量通常,請考慮使用支援更有效的子向量擷取的替代 STL 容器。一種選擇是雙端隊列,它允許在兩端有效地插入和刪除元素:
deque<T> myDeque; deque<T> subDeque(myDeque.begin() + X, myDeque.begin() + Y + 1);
以上是如何有效率地從C向量中提取子向量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!