[问题] 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