可以說我有一個vector<int> { 1, 1, 2, 3, 3, 3, 1, 1 }
,我想這個轉換成「相鄰元素計數」的vector<std::pair<int, int>> { {1, 2}, {2, 1}, {3, 3}, {1, 2} }
:如何統計向量中相等的相鄰元素?
我可能會遍歷向量與指示新「鄰居盤開始的標誌'和一個計數連續元素數量的計數器。我只是想知道STL中是否還有一個更抽象和優雅的解決方案,因爲這似乎是一個非常常見的用例。諸如unique,adjacent_find或equal_range的算法看起來與我正在尋找的非常接近,但僅僅是不太正確的事情,並且可能無法從頭開始自己實現它。
「我只是想知道,如果沒有已經在STL一個更抽象,更優雅的解決方案,因爲這似乎是一個很常見的用例」對於一個矢量?也許對於地圖來說,仍然是「普通」是一個延伸。 – AndyG
在C++庫中沒有內建算法可以做到這一點。這取決於你實施它。聽起來你已經對算法有了很好的把握,所以等待一個不會來的人的回答是沒有意義的。 –
矢量中的相鄰元素是什麼?至少有兩種解釋。什麼阻礙你簡單地介入矢量? – Imago