Ik zit ontzettend te prutsen met een string iterator en het lukt me maar niet om iets werkends te krijgen. Ik heb een map<string, string> stringMap en een string x. Nou wil ik iets van:
Bij die "else if" gaat het dus fout: ik krijg een foutmelding "error: initializing argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std:: allocator<char>]’". Dat zal wel iets betekenen maar ik snap het niet. Als ik de dubbele aanhalingstekens vervang door enkele ('') wordt het "error: empty character constant".
Op de regel na de else if ("y += ..") krijg ik als melding "error: invalid conversion from ‘const char’ to ‘const char*’".
Als ik iets doe van
gaat het wel goed, dus ik denk dat die iterator geen string teruggeeft ofzo. Maar eigenlijk snap ik er gewoon helemaal niks van en internet maakt me ook niks wijzer, het enige wat ze daar met de iterator doen is 'm naar cout gooien. Kan iemand me uitleggen wat er nou mis gaat?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| map<string, string> stringMap;
string x = "abcdefg";
string y = "";
string::iterator iterator;
for (iterator = x.begin(); iterator != x.end(); iterator++) {
if (*iterator == '(') {
// blablabla
}
else if (stringMap[*iterator] != "") {
y += stringMap[*iterator];
}
} |
Bij die "else if" gaat het dus fout: ik krijg een foutmelding "error: initializing argument 1 of ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std:: allocator<char>]’". Dat zal wel iets betekenen maar ik snap het niet. Als ik de dubbele aanhalingstekens vervang door enkele ('') wordt het "error: empty character constant".
Op de regel na de else if ("y += ..") krijg ik als melding "error: invalid conversion from ‘const char’ to ‘const char*’".
Als ik iets doe van
code:
1
| if (stringMap["A"] != "") { |
gaat het wel goed, dus ik denk dat die iterator geen string teruggeeft ofzo. Maar eigenlijk snap ik er gewoon helemaal niks van en internet maakt me ook niks wijzer, het enige wat ze daar met de iterator doen is 'm naar cout gooien. Kan iemand me uitleggen wat er nou mis gaat?
[ Voor 7% gewijzigd door Verwijderd op 18-02-2007 20:23 ]