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

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

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

Работы в векторами. - C++

09.03.2012, 13:56. Просмотров 587. Ответов 3
Метки нет (Все метки)

Читая в книге тему про вектора наткнулся на такой предложение:
"Также существует функция push_front() для занесения элементов в начале вектора, однако векторами она не поддерживается"
Поэтому при выполнении задания, которое требовало выведение строк в обратном порядке, я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 
int main(){
    vector<string> v;
    ifstream in("test.txt");
    string line;
    int count=0;
    while(getline(in, line)){
    v.push_back(line);
    count++;
    }
    
    for(count; count>0; count--)
    cout<<v[count];
    system("PAUSE");
    }
Программа компилируется, но при запуске крашится, не могу понять, в чем причина? И как использовать push_front()?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 13:56     Работы в векторами.
Посмотрите здесь:

C++ Программа с векторами
C++ Операции с векторами и матрицами
Класс для работы с векторами. C++
Проблема с векторами. C++
Работа над векторами! C++
Создать класс, для работы с динамическими векторами C++
C++ Класс для работы с битовыми векторами
C++ Работа с векторами в C++
C++ Работа с векторами
C++ Работа с векторами
C++ Работа с векторами (<vector>)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
09.03.2012, 14:07     Работы в векторами. #2
Цитата Сообщение от AKruglyak Посмотреть сообщение
for(count; count>0; count--)
* * cout<<v[count];
С нуля же отсчет идет.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.03.2012, 14:19     Работы в векторами. #3
ну да. либо исправить на cout << v[count - 1], либо перебирать от count-1 до нуля, либо использовать реверсивные итераторы
C++
1
2
for (std::vector<std::string>::reverse_iterator it = v.rbegin(), end = v.rend(); it != end; ++it)
 std::cout << *it << std::endl;
и еще вариант с алгоритмом copy и реверс итераторами.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
09.03.2012, 14:24     Работы в векторами. #4
Чтобы выявить ошибку можно воспользоваться методом
C++
1
vector::at
Цитата Сообщение от http://cplusplus.com/reference/stl/vector/at/
The difference between this member function and member operator function operator[] is that vector::at signals if the requested position is out of range by throwing an out_of_range exception.
Yandex
Объявления
09.03.2012, 14:24     Работы в векторами.
Ответ Создать тему
Опции темы

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