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

Совмещение стека с <vector> - C++

Восстановить пароль Регистрация
 
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
16.10.2013, 18:28     Совмещение стека с <vector> #1
дан Хедер:
#include <vector>
class iStack {
public:
iStack( int capacity )
: _stack( capacity ), _top( 0 ) {}
bool pop( int &va1ue );
boot push( int value );
bool full();
bool empty();
void display();
int size();

private:
int _top;
vector< int > _stack;
};

Объясните пожалуйста, что значат эти строчки:
iStack( int capacity )
: _stack( capacity ), _top( 0 ) {}
и как можно его написать по проще. Желательно перенеся его в файл cpp.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 18:28     Совмещение стека с <vector>
Посмотрите здесь:

C++ vector<T> template vector<T>::iterator
Совмещение текстов C++
vector(выскакивает ошибка "vector iterators incompatible") C++
C++ Запись в vector<vector<char>>
Bind vector<vector<A*>> C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
calculon
 Аватар для calculon
14 / 14 / 3
Регистрация: 18.07.2012
Сообщений: 79
16.10.2013, 18:34     Совмещение стека с <vector> #2
Эти строчки устанавливают емкость вектора внутри стека и инициализируют его нулями. Зачем проще, чем так плохо?
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
16.10.2013, 18:42  [ТС]     Совмещение стека с <vector> #3
при такой записи она плохо воспринимается и сразу не разобрать.

и как можно избавиться/переделать эту запись так, чтобы указывая размер стека в main.cpp не выдавало ошибки (iStack stack ( 100 ))
calculon
 Аватар для calculon
14 / 14 / 3
Регистрация: 18.07.2012
Сообщений: 79
16.10.2013, 19:04     Совмещение стека с <vector> #4
В заголовочном файле
C++
1
2
3
4
class iStack {
public:
    iStack(int capacity);
};
В исходнике
C++
1
2
3
4
iStack::iStack( int capacity ):_top( 0 )
{
  _stack.resize(capacity, 0);
}
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
16.10.2013, 19:23  [ТС]     Совмещение стека с <vector> #5
при объявлении в main.cpp iStack stack ( 30 ) вывело ошибку "invalid null pointer"
calculon
 Аватар для calculon
14 / 14 / 3
Регистрация: 18.07.2012
Сообщений: 79
16.10.2013, 19:28     Совмещение стека с <vector> #6
Без кода что-либо сказать по этому поводу затруднительно...
Yandex
Объявления
16.10.2013, 19:28     Совмещение стека с <vector>
Ответ Создать тему
Опции темы

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