Re: [問題] 關於STL的set
vector也可以直接用find吧
可能比set的find慢 O(n) vs O(log n)
但是空間上較省
#include <vector>
#include <algorithm>
std::vector<int> v;
int object_to_insert = 1234;
if (find(v.begin(), v.end(), object_to_insert) != v.end())
v.push_back(object_to_insert);
※ 引述《hwakeye (好可愛?)》之銘言:
: ※ 引述《timTan (用口頭禪區分年記)》之銘言:
: : set , vector 並用
: : 使用 set 來檢查重複性
: : 使用 vector 來儲存資料,維持你插入的順序
: 推 stockyo:請問如何用set只檢查重複性呢? 07/22 16:26
: 推 Ebergies:if( yourSet.find( blah...)!= ...) yourVector.push_... 07/22 16:47
: 也可以試試檢查set insert後的回傳值
: set在insert之後回傳的pair中
: first是安插後的element位址
: second則是insert動作是否成功
: 印象中如果有重複值的話
: second的部份應該是會回傳false
: 所以程式就可以用下面的寫法
: std::set<int> c;
: std::vector<int> d;
: ...
: if (c.insert(1).second) {
: d.insert(1);
: }
: ...
--
http://nigel.twbbs.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 76.173.13.240
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章