高效附加向量
處理向量時,一個常見任務涉及將一個向量附加到另一個向量。雖然有一種透過重複插入來實現此目的的簡單方法,但這不是最有效的方法。
為了高效的向量串聯,C 提供了 insert 方法。假設你有兩個向量a 和b,你可以將b 無縫附加到a,如下所示:
a.insert(a.end(), b.begin(), b.end());
此程式碼片段利用insert 將b 中的整個範圍的元素插入到a 中a.end() 指定的位置。
或者,您可以使用C 11 相容的std::begin 和std::end 函數可實現相同的結果:
a.insert(std::end(a), std::begin(b), std::end(b));
這個變體更通用,可以與陣列和向量一起使用。
為了獲得更大的靈活性,您可以使用 ADL(參數相關)查找)與使用者定義類型:
using std::begin, std::end; a.insert(end(a), begin(b), end(b));
總之,insert 提供了一種在C 中附加向量的高效且便捷的方法,使您能夠使用擴展的向量序列輕鬆。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3