[問題] initial Vector with array

作者: POSIX (tedium of chores)   2015-07-07 11:33:20
一個小問題想請教
假設我有一個 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
有沒有什麼語法糖 或是神奇的手法可以做到的
否則就只能一個一個塞了 >_<
作者: shadow0326 (非議)   2015-07-07 12:09:00
塞到vector裡面的順序不就保留了嗎?
作者: Feis (永遠睡不著 @@)   2015-07-07 12:41:00
看你出發點是甚麼. 可以用指標取代存順序. 或者用 transform
作者: CaptainH (Cannon)   2015-07-07 14:04:00
transform+back_inserterhttp://ideone.com/TBIeLs
作者: POSIX (tedium of chores)   2015-07-07 15:25:00
@shadow0326: 事後還要在繼續std::sort, 所以才會出此下策Feis, CaptainH: 感謝 我來試試看最後採用pair, 參考: http://stackoverflow.com/a/527179CaptainH 的版本也很乾淨,很棒!!

Links booklink

Contact Us: admin [ a t ] ucptt.com