Dlaczego nie mogę zadeklarować iteratora stringa?

0
#include <iostream>
#include <string>
using namespace std;
 
void func (const string &s)
{
    for(string::iterator st=s.begin();st!=s.end();++st) cout << *st;
    return;
}
 
int main()
{
    string s="Ala ma kota"; func(s);
     return 0;
}
prog.cpp: In function ‘void func(const string&)’:
prog.cpp:7:37: error: conversion from ‘std::basic_string<char>::const_iterator {aka __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >}’ to non-scalar type ‘std::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >}’ requested
     for(string::iterator st=s.begin();st!=s.end();++st) cout << *st;
                                     ^

http://ideone.com/qn2gXo

co jest? dlaczego nie mogę zadeklarować iteratora do stringa?

1

Bo musisz dać const_iterator żeby typy się zgadzały.

0

dzięki...

1 użytkowników online, w tym zalogowanych: 0, gości: 1