[问题] 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