如果我在代码中使用 std :: find ,我的项目无法构建。我得到的错误是以下
usr / include / c ++ / 4.6 / bits / stl_algo.h:162:4:错误:首先在'_ 中与'operator =='不匹配。 _gnu_cxx :: __ normal_iterator&lt ; _Iterator,_Container> :: operator * with _Iterator = char *,_ _ _ _ _ _ _ _ _ _ _ @ == __val' /usr/include/c++/4.6/bits/stl_algo.h:162:4:注意:候选人是:
以下是我的代码..
std::string lValueCmd = "";
std::string lModeType = "";
std::string lAPModeCmd = "sudo iwconfig /sbin/wlan0 | grep -i 'Mode:' | awk '{print $1}'";
// function to retrive values from linux command and store it in lValueCmd
lResult = RequestCmdOutput( lAPModeCmd, lValueCmd ) ; // function to retrive values from linux command and store it in lValue Cmdd
// std::cout << " the string is " << lValueCmd << std::endl;// debug
std::string delimiter= ":";
std::string::iterator pos;
pos= std::find( lValueCmd.begin(), lValueCmd.end(), delimiter); // no error if I comment this line.
我使用的Header文件是iostream,algorithm和string。
答案 0 :(得分:4)
您需要搜索单个字符,因为"'"
是一个以空字符结尾的字符串,因此由字符'
和\0
组成,您当前的分隔符为{{1} }。 std::string
将比较字符串的元素,这些元素本身就是单个字符:
std::find