Dlaczego nie mogę zadeklarować iteratora stringa?

kmph
2013-08-29 18:14
kmph
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?

Pozostało 580 znaków

2013-08-29 18:20

Rejestracja: 14 lat temu

Ostatnio: 10 godzin temu

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


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

kmph
2013-08-29 19:24
kmph
0

dzięki...

Pozostało 580 znaków

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