看板 C_and_CPP 關於我們 聯絡資訊
一個小問題想請教 假設我有一個 c-style array 例如 int a[] = { 123, 456, 678, 135, ... } int size = sizeof(a) / sizeof(int); 想要先 sort() 可是也想保留原本index 所以可能會用 tuple 把 value 和 index 都存起來 再丟進去 Vector 我知道 vector 有許許多多從 array 到 vector 的 initialization 的方法 例如 std::vector<int> v(&a[0], &a[size]); (應該是還有更簡潔的, orz) 可是我想把一個重新包的 tuple 都進去給他 initial 有沒有什麼語法糖 或是神奇的手法可以做到的 否則就只能一個一個塞了 >_< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.170.73 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1436240007.A.7BD.html ※ 編輯: POSIX (118.163.170.73), 07/07/2015 11:36:12
shadow0326: 塞到vector裡面的順序不就保留了嗎? 07/07 12:09
Feis: 看你出發點是甚麼. 可以用指標取代存順序. 或者用 transform 07/07 12:41
CaptainH: transform+back_inserter 07/07 14:04
CaptainH: http://ideone.com/TBIeLs 07/07 14:20
POSIX: @shadow0326: 事後還要在繼續std::sort, 所以才會出此下策 07/07 15:25
POSIX: Feis, CaptainH: 感謝 我來試試看 07/07 15:27
POSIX: 最後採用pair, 參考: http://stackoverflow.com/a/527179 07/07 21:15
POSIX: CaptainH 的版本也很乾淨,很棒!! 07/07 23:02