Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DarkSkazochnik
3 / 3 / 0
Регистрация: 17.11.2012
Сообщений: 39
#1

Ошибка в итераторе - C++

19.12.2012, 18:42. Просмотров 448. Ответов 12
Метки нет (Все метки)

Вот код (недописанный пока что):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
 
using namespace std;
 
void init_mas (vector <string> umas)
{
    string str;
 
    cout << "Start to input your strings. End of input - print in 00." << endl;
    while (cin >> str)
    {
        if (str == "00") break;
        umas.push_back(str);
    }
}
 
void output (const vector <string> umas)
{
    vector<string>::iterator out;
 
    for (out = umas.begin(); out != umas.end(); out++)
    {
        cout << *out << endl;
    }
}
 
void main()
{
    vector <string> mmas;
 
    init_mas(mmas);
    output(mmas);
}
Выдает ошибку в процедуре вывода на экран:

IntelliSense: отсутствует оператор "=", соответствующий этим операндам типы операндов: std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::string>>> = std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<std::string>>>

Компилятор Visual Studio, ошибка возникает в отрезке кода:

C++
1
for (out = umas.begin(); out != umas.end(); out++)
Огромная просьба поправить меня и пояснить, что я неправильно делаю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 18:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в итераторе (C++):

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services - C# ASP.NET
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt; ......

1C 8.x Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! - 1С
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). - Turbo Pascal
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет...

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты. - C# ASP.NET
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail = CreateObject('CDONTS.NewMail') ...

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать) - 1С
1C 8.2 Документооборот КОРП 1.2 Текст ошибки {ОбщийМодуль.АвтозаполнениеШаблоновФайловКлиентСервер.Модуль(616)}: Ошибка при вызове...

Interbase Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка - Delphi БД
В Combobox загружены имена организаций. Нужно выполнить запрос на вывод всех полей таблицы организаций при выборе имени в Combobox. При...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
19.12.2012, 18:46 #2
1) что-то подсказывает мне, что нельзя применять неконстантный итератор
2) функция инит точно работает как задумано? В неё вектор передаётся по значению.
3) раз уж решил в оутпут передавать вектор по значению, зачем писать конст? Он и так не смог бы изменить этот вектор. Там же не ссылка передаётся!

Могу ошибаться. С векторами не очень дружу.
1
DarkSkazochnik
3 / 3 / 0
Регистрация: 17.11.2012
Сообщений: 39
19.12.2012, 18:50  [ТС] #3
Ну, это да, совершенно глупую вещь допустил, признаю =) Но программа опять отказывается работать...

Решил первую проблему удалением const в параметрах процедуры output, но теперь категорически ничего не получаю на экране...
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:53 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
 
using namespace std;
 
void init_mas (vector <string> umas)
{
    string str;
 
    cout << "Start to input your strings. End of input - print in 00." << endl;
    while (cin >> str)
    {
        if (str == "00") break;
        umas.push_back(str);
    }
}
 
void output (vector <string> umas)
{
 
    for (vector<string>::iterator out = umas.begin(); out != umas.end(); out++)
    {
        cout << *out << endl;
    }
}
 
int main()
{
    vector <string> mmas;
 
    init_mas(mmas);
    output(mmas);
}
0
DarkSkazochnik
3 / 3 / 0
Регистрация: 17.11.2012
Сообщений: 39
19.12.2012, 18:53  [ТС] #5
Kuzia domovenok, можно про твой второй пункт поподробнее? Просто плохо ещё ориентируюсь в передаче параметров в функции в Си...
0
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:53 #6
DarkSkazochnik, передавайте вектор по ссылке в функции. const не надо убирать, есть же const_iterator

Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
Просто плохо ещё ориентируюсь в передаче параметров в функции в Си...
В C++
1
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:55 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
 
using namespace std;
 
void init_mas (vector <string> umas)
{
    string str;
 
    cout << "Start to input your strings. End of input - print in 00." << endl;
    while (cin >> str)
    {
        if (str == "00") break;
        umas.push_back(str);
    }
}
 
void output (const vector <string> umas)
{
 
    for (vector<string>::const_iterator out = umas.begin(); out != umas.end(); out++)
    {
        cout << *out << endl;
    }
}
 
int main()
{
    vector <string> mmas;
 
    init_mas(mmas);
    output(mmas);
}
0
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:55 #8
sovaz1997, проблема-то не устранена.
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:56 #9
Цитата Сообщение от Schizorb Посмотреть сообщение
sovaz1997, проблема-то не устранена.
Почему?
0
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
19.12.2012, 18:57 #10
Цитата Сообщение от sovaz1997 Посмотреть сообщение
Почему?
У тебя output что-нибудь вывело на экран?
0
DarkSkazochnik
3 / 3 / 0
Регистрация: 17.11.2012
Сообщений: 39
19.12.2012, 18:58  [ТС] #11
Schizorb, спасибо что поправил насчет версии языка.

По ходу дела: ребят, большое спасибо, теперь работает, добавил где надо амперсанды. Дальше буду допиливать сам.
0
Schizorb
19.12.2012, 19:01
  #12

Не по теме:

Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
спасибо что поправил насчет версии языка.
Просто в Си нет ссылок) Передача по указателю в таких случаях будет нужна.

0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
19.12.2012, 19:03 #13
Цитата Сообщение от DarkSkazochnik Посмотреть сообщение
можно про твой второй пункт поподробнее?
C++
1
2
void init_mas (vector <string> &umas)
void output (const vector <string> &umas)
И итератор, как советует сообщение об ошибке, следует заменить на конст итератор

Добавлено через 1 минуту
Цитата Сообщение от sovaz1997 Посмотреть сообщение
Почему?
потому что у тебя так же нет ссылок, как и у ТС
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 19:03
Привет! Вот еще темы с ответами:

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера' - C# ASP.NET
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' Эта конструкция работала на IIS 4,...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён - Python
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка &quot;Ошибка доступа (403). Ошибка проверки CSRF. Запрос...

Server 2003 Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка - Windows Server
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак не пингуется... загружается до...

Ошибка при запуске 1С:Предприятия: Ошибка подключения HRESULT=80004005 - 1С
Здравствуйте, помогите, пожалуйста. Посмотрел в инете и мало что понял из написанного там. Во первых, это ошибка 1С сервера или базы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.12.2012, 19:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru