[問題] vector / const char*

作者: leondemon (狗狗)   2014-09-26 17:50:45
我在開發 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 內
作者: bibo9901 (function(){})()   2014-09-26 18:02:00
自己寫一個 functor 傳進 find_if 裡或是乾脆把 keyword 宣告成 std::string
作者: leondemon (狗狗)   2014-09-26 18:04:00
keyword 會隨著 runtime 改變,這樣要怎麼處理呢?
作者: shadow0326 (非議)   2014-09-26 18:56:00
functor裡的字串成員可以在runtime賦值

Links booklink

Contact Us: admin [ a t ] ucptt.com