Форум программистов, компьютерный форум 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> подробнее

Показать сообщение отдельно
AnDrew_LP
160 / 162 / 9
Регистрация: 29.05.2010
Сообщений: 435
06.01.2014, 17:22     STL STACK как с ним работать?
Цитата Сообщение от Alex566 Посмотреть сообщение
Но тогда это решение не поможет организовать удаление, поскольку с помощью _Get_container вы переприсвоили значения стека деку. И удаляемые элементы будут удалятся не с стека, а с нового контейнера дека. А s._Get_container().begin() возвращает константный итератор по которому удаление сделать тоже не выйдет.
Разве что очистить стек, удалить указанные элементы с дека и присвоить их значение стеку.
А я и не говорил, что это позволит удалять элементы) Я имел в виду вот это
4. Просмотреть контейнер, используя для доступа к его элементам итераторы.
А удалять элементы можно используя только стэк, рекурсивно
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
#include <stack>
#include <deque>
#include <iostream>
 
using namespace std;
 
template<typename T>
void Erase(stack<T>& s, const unsigned int &from, const unsigned int &to, unsigned int current)
{
    if(s.size() == 0) return;
    if(current >= from && current <to)
    {
        s.pop();
        Erase(s, from, to, current + 1);
    }
    else
    {
        T temp = s.top();
        s.pop();
        Erase(s, from, to, current + 1);
        s.push(temp);
    }
}
 
template<typename T>
void Erase(stack<T>& s, const unsigned int first, const unsigned int n)
{
    unsigned int to = s.size() - first;
    unsigned int from = s.size() - first - n;
    if(from >= s.size() || to >= s.size() || from > to) return;
    Erase(s, from, to, 0);
}
 
template<typename T>
void Output(const stack<T>& s)
{
    deque<float> d = s._Get_container();
    for(deque<float>::iterator i = d.begin();i < d.end(); i++)
    {
        cout << *i << ' ';
    }
    cout << endl;
}
 
int main()
{
    stack<float> s;
    for(short i = 0; i < 25; i++)
        s.push(i);
 
    Output(s);
 
    Erase(s,4,7);
 
    Output(s);
 
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru