Re: [問題] 數字連續化

看板C_and_CPP (C/C++)作者 (Alien)時間16年前 (2009/04/28 17:55), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《maplefog (楓霧)》之銘言: : 我目前有個vector< vector<int> > : 內容大概是這樣 : 0 1 : 0 3 : 3 7 : 7 9 : 9 10 : 10 15 : ... : 我想把數字連續化,也就是從0 1 2 3 4 ...這樣 : 上面那個例子會變成 : 0 1 : 0 2 : 2 3 : 3 4 : 4 5 : 5 6 : 請問除了暴力法以外還有什麼方法可以比較快速完成,謝謝 其實我看不明白你上面的例子和下面的結果的關係是什麼 和 vector< vector<int > > 的關係又是什麼 把你的問題這樣簡化可以嗎?: 有一堆不連續的數字 然後把它們依本身值的順序, 替換成連續數字, 對嗎? 寫一段 psuedo code 吧: vector<int> values = { 1 , 3 , 4, 3, 9, 5 , 2 }; map<int, int> valueMap(); // 把現有值塞進 map, 以現有值作 key for each (v in values) { valueMap[v] = 0; } // 以新值為 value i = 0; for each (entry in valueMap) { entry.second = ++i; } // 由 value map lookup 新值並取代之 for each (v in values) { v = valueMap[v]; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (04/28 17:55)

04/28 21:50, , 1F
感謝。 第一行強調那個是因為我是用vector實現二維陣列
04/28 21:50, 1F
文章代碼(AID): #19zjAAN3 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #19zjAAN3 (C_and_CPP)