foreach - C++ for_each algo and string -
I am trying to loop through every letter of the string, for_each,
Std :: unordered_map & lt; Std :: string, unsigned int & gt; Dico; Std :: for_each (str.begin (), str.end (), [& amp;] (std :: string l) {if (dico.count (l) == 0) {'anything is here}} However, I have received an error message:
Error 2 error C2664: 'zero' anonymous-name space ':: & lt; lambda2 & Gt; :: Operator () (Std :: string) const ':' const char 'parameter 1 of' std :: string 'can not be changed I < Code> char l However, it can break the dico.count (l) instead, I for loop I use I have seen that solution worked, however, I wonder why for_each will not work here.
Std :: unordered_map dico; "[" a "] = 1; deco [" b "] = 1; [ C "] = 1; Std :: string str (" abcd "); Std :: for_each (str.begin (), str.end (), [& amp;] (four l) {std :: string s ( 1, L); // if is fixed (dico.count (s) == 0) {std :: cout & lt; & Lt; "1" & lt; & Lt; Std :: endl;}}); This should work
The problem is that you do not start char using string You may need either another string (C ++ string) (C string) (C string).
In addition to this you can actually enter std :: unordered_map & lt; Char, unsigned int & gt;
Edit on the basis of Rob Kennedy's comment:
. Now the right CTO of std :: string is saying.
Comments
Post a Comment