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

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

Войти
Регистрация
Восстановить пароль
 
 
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
#1

Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе? - C++

29.08.2016, 11:26. Просмотров 582. Ответов 30
Метки нет (Все метки)

Ребят, почему так выводит(все время первый город вектора)?


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
vector<string> wcities;
 
vector<string> Bot::Insert(string put)
{
    vector<string> vec;
    fstream file(put, ios::in | ios::out);
    if(! file.is_open())
    {
        cout << "Не могу октрыть файл!" << endl;
    }
    while(!file.eof())
    {
        string city;
        file >> city;
        vec.push_back(city);
    }
    for(vector<string>::iterator itr = vec.begin(); itr != vec.end(); itr++)
    {
        cout << *itr << endl;
    }
    file.close();
    return vec;
}
 
string Bot::Base(vector<string> vect)
{
    string wcity = vect[0];
    wcities.push_back(wcity);
    vect.erase(vect.begin());
    for(vector<string>::iterator itr = vect.begin(); itr != vect.end(); itr++)
    {
        cout << *itr << endl;
    }
    return wcity;
}
 
void Bot::Cities()
{
    string put;
    vector<string> cities_a = Insert("Base/citiesА.txt");    vector<string> cities_b = Insert("Base/citiesБ.txt");    vector<string> cities_v;
    vector<string> cities_g;    vector<string> cities_d;    vector<string> cities_e;
    vector<string> cities_j;    vector<string> cities_z;    vector<string> cities_i;
    vector<string> cities_ii;    vector<string> cities_k;    vector<string> cities_l;
    vector<string> cities_m;    vector<string> cities_n;    vector<string> cities_o;
    vector<string> cities_p;    vector<string> cities_r;    vector<string> cities_s;
    vector<string> cities_t;    vector<string> cities_y;    vector<string> cities_f;
    vector<string> cities_x;    vector<string> cities_c;    vector<string> cities_ch;
    vector<string> cities_sh;    vector<string> cities_sha;    vector<string> cities_ee;
                vector<string> cities_yu;            vector<string> cities_ya;
 
    string city;
    while (city != "стоп")
    {
        cout << "Называй город - ";
        (cin >> city).get();
        cout << endl;
        int len = city.size() - 1;
            switch (city[len])
            {
                case 'а':
                    Anim();
                    cout << "*~{Кеша}~*: " << Base(cities_a) << endl;
                    break;
                case 'б':
                    {
                    Anim();
                    cout << "*~{Кеша}~*: " << Base(cities_b) << endl;
                    break;
                    }
            }
    }
}
0
Миниатюры
Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе?  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2016, 11:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе? (C++):

Собственно где тут ошибка? почему я не могу ввести правельно данные. Реализация класса - C++
#include &lt;iostream&gt; using namespace std; class Person { private: int ID; char *Name; bool Gender; double AGE; ...

Получение указателя на данные в векторе - C++
есть вектор std::vector&lt;char&gt; vLeftBuf(bs); есть ф-я которая в качестве параметра принимает const char * подскажите пожалуйста как...

Объединить данные разного типа в векторе - C++
есть вектор из 300 товаров. Из них 100 dress, 100 PC, 100 boots. Я хочу их соединить в один вектор с названием товара и их количеством. как...

Не могу понять почему данные не записываются в БД - PHP БД
Есть форма: &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt; &lt;html&gt; &lt;head&gt; ...

Невводятся данные в базу не могу понять почему - PHP БД
&lt;? if (isset($name) &amp;&amp; isset($email) &amp;&amp; isset($location) &amp;&amp; isset($tariff)) { $result = mysql_query (&quot;INSERT INTO users (name,...

не могу понять каки данные слать - Delphi
Вопрос вот в чем, сделал я авторегисратор на сайт fank.mobi и все я регистрируюсь нормально: rocedure TForm1.Button1Click(Sender:...

30
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 06:56 #2
hax0r, приведите Ваш код полностью.
0
Denissimo
38 / 1 / 1
Регистрация: 09.08.2012
Сообщений: 44
30.08.2016, 09:33 #3
Я так понял что основной цикл void Bot::Cities()
но там нет удаления города из вектора, с чего бы там что то удалялось
0
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 09:42  [ТС] #4
gru74ik, зачем вам код всего бота? Там много других тут не нужных функций, эта игра работает засчет этих 3-х функций.

Добавлено через 51 секунду
Denissimo, удаление происходит в функции Base - vect.erase(vect.begin());
0
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 09:54 #5
Цитата Сообщение от hax0r Посмотреть сообщение
зачем вам код всего бота?
Покажите минимально компилируемый кусок кода.

Добавлено через 6 минут
hax0r, в свитче у Вас там что? Сравниваете int с char? Допустим, city.size() == 7, тогда int len = city.size() - 1 (57 строка кода), то есть len == 6. И вот это целое число 6 Вы сравниваете с символом 'а' (в первой ветке свича) или 'б' (во второй ветке свитча). Даже дефолтной ветки нет. Зачем всё это?

Добавлено через 2 минуты
И вот ещё что.
0
Operok
172 / 170 / 46
Регистрация: 15.02.2015
Сообщений: 492
Завершенные тесты: 2
30.08.2016, 10:00 #6
При беглом взгляде
C++
1
string Bot::Base(vector<string> vect)
передача вектора по значению, серьёзно?
C++
1
string Bot::Base(vector<string> & vect)
1
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 11:36  [ТС] #7
Operok, я пробовал, ничего...

Добавлено через 2 минуты
gru74ik, я читал эту тему, ничего не вышло, там с len все правильно находит, я пробовал без -1 оно пробел выводит, по\тому -1 нужен чтобы найти последний символ строки
0
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 11:37 #8
hax0r, ну что ж, ждите телепатов.
0
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 11:38  [ТС] #9
gru74ik, строка - это же массив символов, так вот я и обращаюсь к последнему символу строки

Добавлено через 27 секунд
gru74ik, в смысле?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 11:41 #10
hax0r, в прямом. Без минимально компилируемого куска кода о причинах ошибок можно только догадываться. Возможно, Вам повезёт и кто-то догадается.
0
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 11:45  [ТС] #11
gru74ik, какой минимально компилируемый, что это значит?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 11:46 #12
hax0r, который я могу в IDE запустить и он скомпилируется. Пускай с ошибками, пускай не так, как ожидается, но скомпилируется.
0
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 11:47  [ТС] #13
gru74ik, а этот не компилится?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,145
Записей в блоге: 22
30.08.2016, 11:49 #14
hax0r, там даже мэйна нет. Как он скомпилится?
0
hax0r
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 40
30.08.2016, 11:50  [ТС] #15
gru74ik, ну в пустой проект вставьте мой код, а в мэйне вызовете Cities()
0
30.08.2016, 11:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2016, 11:50
Привет! Вот еще темы с ответами:

не могу понять как сделать вводные данные - SQL Server
2. Смотреть в какой серии книг печатался автор (автор, серия) т е должны вводить фамилию автора, а получать автор и серию Use kyrcah ...

Не могу понять из какого регистра берутся данные для отчета - 1С
1С 7.7 Торговля + склад, редакция 9.2, отчет по продажам ТМЦ. Меня очень интересует колонка &quot;Количество, еденица&quot;. Из какого...

Не могу понять как делать данные задачи.Очень надо( - MathCAD
1. Написать программу-функцию, используя условный оператор if: Даны x,y,z. Найти max(x+y+z, x*y*x)+3. 2. Написать программу-функцию...

Не могу понять, как создать кнопку которая будет добавлять данные в таблицу - MS Access
Все привет любители баз данных. Я создаю приложение для курсовой, хотелось бы узнать как правильно создать кнопку, которая при нажатии ее,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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