[問題] initial Vector with array

看板C_and_CPP作者 (tedium of chores)時間9年前 (2015/07/07 11:33), 9年前編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
一個小問題想請教 假設我有一個 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

07/07 12:09, , 1F
塞到vector裡面的順序不就保留了嗎?
07/07 12:09, 1F

07/07 12:41, , 2F
看你出發點是甚麼. 可以用指標取代存順序. 或者用 transform
07/07 12:41, 2F

07/07 14:04, , 3F
transform+back_inserter
07/07 14:04, 3F

07/07 14:20, , 4F

07/07 15:25, , 5F
@shadow0326: 事後還要在繼續std::sort, 所以才會出此下策
07/07 15:25, 5F

07/07 15:27, , 6F
Feis, CaptainH: 感謝 我來試試看
07/07 15:27, 6F

07/07 21:15, , 7F
最後採用pair, 參考: http://stackoverflow.com/a/527179
07/07 21:15, 7F

07/07 23:02, , 8F
CaptainH 的版本也很乾淨,很棒!!
07/07 23:02, 8F
文章代碼(AID): #1LcqY7Uz (C_and_CPP)