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

Как передать контейнер map в функцию? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, бьёт ли ладья другую фигуру http://www.cyberforum.ru/cpp-beginners/thread659885.html
You are given four numbers, coordinates of rook and another figure. You should determine whether rook beats the second figure. Имеется четыре числа: координаты ладьи и другой фигуры. Необходимо определить, бьёт ли ладья другую фигуру.
C++ Инсталятор Скажите, что нужно сделать, чтоб написанную мной программу (консольное приложение) можно было бы запустить на другом компьютере, где нет среды разработки. Нужно ли делать что-то вроде инсталятора? http://www.cyberforum.ru/cpp-beginners/thread659855.html
Поиск с возвратом для графа? C++
Тема задачи: Поиск с возвратом. Задачи на графах. Условие задачи: В заданном неориентированном графе найти кратчайший путь, соединяющий две заданные вершины. Уважаемые форумчане, пожалуйста, подскажите как реализовать этот самый "поиск с возвратом" для моей задачки. Задал смежную матрицу, а как реализовать цель задачи в C++ (программа Borland C++ 3.11) на практике не знаю... В...
C++ С++ под Windows 7
Скажите, какой компилятор языка C++ поставить поставить для Windows 7,? чтобы структура и синтаксис были, как в C++ Builder 6? Добавлено через 1 минуту Все пишите свои варианты!
C++ Найти ОДЗ для функции http://www.cyberforum.ru/cpp-beginners/thread659815.html
Всем привет. Вот такая вот лабораторная: Найти область допустимых значений функции и написать программу, вычисляющую значение функции для заданных начальных данных (s, t, x), обеспечив варианты: ввода данных с клавиатуры, инициализации данных в программе, вывода результата на экран. Для тестирования исходные данные задавать как целые, вещественные с фиксированной точкой, плавающей точкой....
C++ Создание эхо сервера Здравствуйте, извините, если ошибся с разделом форума. Помогите, пожалуйста, разобраться с кодом сервера и клиента. И еще раз извиняюсь, так как код очень быдловский(еще в процессе редактирования и переписывания под себя, исходник взят из статьи Касперски). В общем-то вопрос всего один: какая часть кода отвечает за размер сообщения (передается около 30 символов, лень считать точнее). Код... подробнее

Показать сообщение отдельно
AnreyKazakov
Заблокирован
28.09.2012, 19:45     Как передать контейнер map в функцию?
Вопросов правда несколько, первый связан с конкретным примером.
Есть карта (заполненная), ключ - стринг, значение - вектор-стринг, необх доб значения в вектор, в функцию передается два итератора begin(),end();
Когда пытаюсь инициализировать вектор значением итератора вылазит ошибка, строчку выделил комментарием /**/.
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
using namespace std;
typedef map<string,vector<string> > mapsv;
void add(mapsv::iterator ibegin,mapsv::iterator iend){
    
    //enter value
    string sname,ssurname;
    cout<<"Enter Surname and Name: ";
    cin>>sname>>ssurname;
    
    //create new map and search surname
    mapsv mps(ibegin,iend);cout<<"ok1";
    mapsv::iterator ifind=mps.find(ssurname);cout<<"ok2";
    
    //if the surname is found - create new vector
    //and search for the name to add new value
    bool key=0;cout<<"ok3";
    if(ifind!=iend){
        vector<string> vec(ifind->second);cout<<"ok4";/*ошибка*/
        for(vector<string>::iterator i=vec.begin();i!=vec.end();++i){
            cout<<"ok5";
            if(sname==*i){key=1;cout<<"ok6";break;}
            }
            
        if(key){cout<<"This name is already!";}else{
            vec.push_back(sname);cout<<"Add name "<<sname<<" in the group surname "<<ssurname<<endl;}
        }else{cout<<"This surname is already!";}
    }
Во вторых, в книжке написано (правда в разделе последовательных контейнеров было), что в функцию лучше передавать не сам объект (контейнер), а его итераторы... как вариант первый и последний.
Но, у меня чет так не получается =( отправил вроде итераторы, а чтобы добавить вектор, нужно найти функцией find ключ, как же я его найду, если у меня только два ключа в распоряжении? вот и создаю новый контейнер в функции, а это мне кажется то же самое, что его передать в функцию... Смысл теряется, только код раздувается... хех, в рифму получилось...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru