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

STL STACK как с ним работать? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С чего начать? http://www.cyberforum.ru/cpp-beginners/thread1063209.html
Добрый день ребята! Несколько месяцев занимаюсь программированием на C/C++. Начинал я, как это обычно бывает с консольки... Но теперь хочется нового - интерфейс. Хочу писать для конечных пользователей музыкальный софт под Windows/Windows Phone... Что мне нужно для этого сделать? С чего начать? ПС: говорят, что для моих целей надо учить шапр... а чем он лучше чем С?
C++ Мониторинг каталога на предмет изменения содержимого Нужно написать функция (или подпрограмму) которая мониторит каталог. Если какой либо файл в каталоге изменился (поменялся размер, содержание или атрибут), то должна быть вызвана функция, которая возвращает имя изменённого файла. Можно ежесекундно проверять все файлы сравнивая их с оригинальным значение, но это не есть solution, т.к. это слишком ресурсоёмко. Как решить эту задачу? П.С. хороший... http://www.cyberforum.ru/cpp-beginners/thread1063208.html
C++ unsigned на плюсах
unsigned на плюсах, помогите разобраться, когда её нужно юзать, а когда нет) та и для чего она впринцепе)
Функция умножений матриц C++
В чем ошибка? Не пойму как решить. #include <iostream> using namespace std; void mtx(int a,int b, int m1,int n1,int m2,int n2,int c){ if(n1==m2){ for(int i=0;i<m1;i++){ for(int j=0;j<m2;j++){ c=0; for(int k=0;k<n2;k++){
C++ Матрицы. Определить индекс стобца, среднее арифметическое элементов которого максимально http://www.cyberforum.ru/cpp-beginners/thread1063192.html
Дана прямогульная матрица b. Определить индекс стобца. среднее арифметическое жлементов которого максимально. Если таких столбцов несколько, то выдать наименьший из их индексов, жлементы матрицы задать с помощью генератора случайных чисел. Значения M N ввести с клавиатуры. Ограничения M<=10. N<=10 значения жлементов из диапазона . Вопрос как реализовать сложение суммы стобцов? то есть есть...
C++ сумма разность целых неотрицательных чисел Найти сумму разность целых неотрицательных чисел, применить рекурсию. вот примеры, допускаемых входных цепочек: 0-1-1-1-1; 000; 1-23-456+7890 У меня неправильно высчитывает, в чем причина? //рекурсия #include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h> подробнее

Показать сообщение отдельно
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
05.01.2014, 22:44     STL STACK как с ним работать?
Хм.. Глянул на объявление стека, действительно
C++
1
2
3
template<class _Ty,
    class _Container = deque<_Ty> >
    class stack
и второй параметр шаблона стандартно принимает значение deque<тип первого параметра>.
stack<float,deque<float>> эквивалентно stack<float>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stack>
#include <deque>
#include <iostream>
#include <iterator>
using namespace std;
 
int main()
{
    stack<float> s;
    for (short i = 0; i < 5; i++)
        s.push(i);
    deque<float> d = s._Get_container();
    copy(d.begin(), d.end(), ostream_iterator<float>(cout, " "));
    cout << endl;
    system("pause");
    return 0;
}
Но здесь не обойтись без использования контейнера deque, а создателю темы по заданию нужно работать с стеком. Хотя другого варианта не вижу.

Добавлено через 4 минуты
Хотя..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stack>
#include <iostream>
#include <iterator>
using namespace std;
 
int main()
{
    stack<float> s;
    for (short i = 0; i < 5; i++)
        s.push(i);
    copy(s._Get_container().begin(), s._Get_container().end(), ostream_iterator<float>(cout, " "));
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 3 минуты
Ну или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stack>
#include <iostream>
#include <iterator>
using namespace std;
 
int main()
{
    stack<float> s;
    for (short i = 0; i < 5; i++)
        s.push(i);
    for (deque<float>::const_iterator i = s._Get_container().begin(); i < s._Get_container().end(); i++)
        cout << *i << ' ';
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 9 минут
Цитата Сообщение от AnDrew_LP Посмотреть сообщение
Но решение все же есть)
Но тогда это решение не поможет организовать удаление, поскольку с помощью _Get_container вы переприсвоили значения стека деку. И удаляемые элементы будут удалятся не с стека, а с нового контейнера дека. А s._Get_container().begin() возвращает константный итератор по которому удаление сделать тоже не выйдет.
Разве что очистить стек, удалить указанные элементы с дека и присвоить их значение стеку.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru