[問題] vector / const char*

看板C_and_CPP作者 (狗狗)時間11年前 (2014/09/26 17:50), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/3 (看更多)
我在開發 ObjC (iOS) 因為某種原因,必須使用到 C++ 的 Array (Vector) 由於我是 C++ 的新手 有一些問題想請教 我使用了 vector 來存放 C 語言的 const char* 如下: // 宣告一個 CPPCharArray 型別,用來存放 const char* typedef std::vector<const char*> CPPCharArray; 然後初始化這個 vector CPPCharArray v = {"dog", "cat", "apple"}; 目前必須要使用這個 vector 來檢查是否含有一個 C 字串 char *keyword = ... if (std::find(v.begin(), v.end(), keyword) != v.end()) { // The vector contains this C string. } 我發現這個方法比對 似乎是比較 item 的值 (位址) 若該 keyword 是使用 concat 在 runtime 串接起來的字,在比對上時會被認為不同 item 我有找到 find_if 的 function 但 find_if 不支援 C Block,不知道要怎麼把 keyword 傳入該 function 內 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.48.32 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411725047.A.3A5.html

09/26 18:02, , 1F
自己寫一個 functor 傳進 find_if 裡
09/26 18:02, 1F

09/26 18:03, , 2F
或是乾脆把 keyword 宣告成 std::string
09/26 18:03, 2F

09/26 18:04, , 3F
keyword 會隨著 runtime 改變,這樣要怎麼處理呢?
09/26 18:04, 3F

09/26 18:56, , 4F
functor裡的字串成員可以在runtime賦值
09/26 18:56, 4F
文章代碼(AID): #1K9JRtEb (C_and_CPP)
文章代碼(AID): #1K9JRtEb (C_and_CPP)