otrzymuję ten błąddereferencing plony ciąg iteracyjnej int
comparison between pointer and integer ('int' and 'const char *')
Na poniższym kodzie
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
std::string s("test string");
for(auto i = s.begin(); i != s.end(); ++i)
{
cout << ((*i) != "s") << endl;
}
}
Dlaczego dereferencing iterator ciąg uzyskując int
i nie std::string
?
Powinieneś napisać 'cout << ((* i)! = 'S') << endl;' (zanotuj pojedyncze cytaty). –
Porównujesz znak ('* i') ze wskaźnikiem do ciągu znaków (' 's" '). To nie działa. –
jeśli używasz 'auto' już, dlaczego nie używać range-for jak w' for (auto const & c: s) {cout << (c! = 'S') << '\ n'; } '? (zauważ, że rzadko chcesz używać 'endl' i najczęściej' \ n') – TemplateRex