亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何按其他std :: vector的值對std :: vector進行排序?

如何按其他std :: vector的值對std :: vector進行排序?

C++
眼眸繁星 2019-10-08 15:56:40
我有幾個std::vector,長度都一樣。我想對這些向量之一進行排序,并將相同的變換應用于所有其他向量。有一個整齊的方法嗎?(最好使用STL或Boost)?一些載體的持有intS和他們中的一些std::string秒。偽代碼:std::vector<int> Index = { 3, 1, 2 };std::vector<std::string> Values = { "Third", "First", "Second" };Transformation = sort(Index);Index is now { 1, 2, 3};... magic happens as Transformation is applied to Values ...Values are now { "First", "Second", "Third" };
查看完整描述

4 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

將值放入Boost Multi-Index容器中,然后進行迭代以按所需順序讀取值。如果需要,您甚至可以將它們復制到另一個向量。


查看完整回答
反對 回復 2019-10-08
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

您可能可以定義一個自定義的“外觀”迭代器,該迭代器可以滿足您的需求。它將迭代器存儲到所有向量,或者從第一個向量的偏移量導出除第一個向量以外的所有向量的迭代器。棘手的部分是迭代器取消引用的內容:想像boost :: tuple之類的東西,并巧妙地使用boost :: tie。(如果您想擴展這個想法,可以使用模板遞歸地構建這些迭代器類型,但您可能永遠不想寫下它的類型-因此,您需要c ++ 0x auto或包裝函數來進行取范圍的排序)


查看完整回答
反對 回復 2019-10-08
  • 4 回答
  • 0 關注
  • 1749 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號