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

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

Войти
Регистрация
Восстановить пароль
 
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
#1

Контейнер deque - C++

15.01.2014, 20:33. Просмотров 924. Ответов 5
Метки нет (Все метки)

Заданиеиспользуя контейнер deque) ввести последовательность натуральных чисел,у конце которой 0.Не сохраняя всей последовательности в памяти, вывести порядковые номера крупнейших цифр последовательности в порядке возрастания их номеров.
Я знаю,что особенность этого контейнера в том,что в нём можно получить доступ как с начала,тк и с конца.Но не знаю к чему это "у конце которой 0" (типа оно долждно мешать мне?).+не знаю как решить эте задачу,не сохраняя элементы контейнера в памяти.Помогите пожалуйста с алгоритмом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 20:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Контейнер deque (C++):

Контейнер deque <pair> - C++
Есть контейнер deque&lt;pair&lt;int, int&gt;&gt; dq; Делаю вставку dq.push_back(make_pair(100, 100)); dq.push_back(make_pair(80, 80)); ...

STL deque - C++
Устройство, основные операции и их стоимость, особенности использования deque. Ни где не могу найти стоимость выполнения основных...

std::deque - C++
Как известно при добавлении в конец вектора элементов(и не только в конец) может возникнуть перераспределение памяти что переместит данные...

deque<float> - C++
Создать контейнер deque и заполнить его типом данных &lt;float&gt;, вывести на экран. Удалив одни элементы и заменив другие вывести на экран...

Compair deque - C++
есть два списка. Теперь мне нужно сравнить элементы если х &lt;у то return (x+y) . я так думаю надо результат в 3 список записать как мне...

deque iterator not dereferencable - C++
итак программа должна считывать из файла данные об автобусных маршрутах (имя водителя, номер маршрута и т.д.). После этого сортировать...

5
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
15.01.2014, 20:36 #2
Цитата Сообщение от triadec_96 Посмотреть сообщение
Но не знаю к чему это "у конце которой 0"
признак конца последовательности
1
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
15.01.2014, 23:05  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
признак конца последовательности
А как вычислить найбольшие числа?
Есть какая-то процедура типа max(d)?
Ибо в С++ нельзя создать процедуру,входящей "перемонной" которой есть контейнер (то есть пишу
int max(deque);
а оно deque не принимает).
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24012 / 15993 / 4840
Регистрация: 22.10.2011
Сообщений: 28,305
Записей в блоге: 5
16.01.2014, 00:15 #4
Есть std::max_element, вообще-то.

C++
1
2
std::deque<int>::iterator it = std::max_element(deq.begin(), deq.end());
int index = distance(deq.begin(), it); // выдаст тебе позицию максимального элемента дека
1
triadec_96
12 / 12 / 1
Регистрация: 27.12.2012
Сообщений: 448
Завершенные тесты: 1
16.01.2014, 02:45  [ТС] #5
Цитата Сообщение от UI Посмотреть сообщение
1
2
std::deque<int>::iterator it = std::max_element(deq.begin(), deq.end());
int index = distance(deq.begin(), it); // выдаст тебе позицию максимального элемента дека
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <deque>
#include <conio.h>
using namespace std;
int id;
deque<int> d;
int max_erase();
void main()
{
    int a,m,idd[3];
    while(1)
    {cin>>a;
    d.push_back(a);
    if(a==0) break;}
 
deque<int>::iterator it =max_element(d.begin(), d.end());
int index = distance(d.begin(), it);
 
    getch();
}
1>d:\projects\c++\vs 12 (3 kourse)\deque1\deque1\исходный код.cpp(21): error C3861: max_element: идентификатор не найден
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
16.01.2014, 02:52 #6
Цитата Сообщение от triadec_96 Посмотреть сообщение
Ибо в С++ нельзя создать процедуру,входящей "перемонной" которой есть контейнер (то есть пишу
int max(deque);
а оно deque не принимает).
Вы пишите ахинею навроде этой:
int max(int);
Все в С++ принимает, просто вы не умеете это готовить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <deque>
#include <iostream>
 
void print(const std::deque<int> &d)
{
    for (auto x: d) // C++11 for-loop, use iterators instead if C++98
        std::cout << x << " ";
    std::cout << std::endl;
}
 
int main()
{
    std::deque<int> d = {1, 2, 3, 4, 5};
    print(d);
}
2
16.01.2014, 02:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 02:52
Привет! Вот еще темы с ответами:

vector, list, deque - C++
Пытаюсь разобраться, куда лучше какой контейнер применять, под какие задачи. Первый вопрос по списку: Сказано, что список удаляет любой...

STL, deque, pair - C++
Здравствуйте, помогите пожалуйста разобраться. Есть такая очередь: deque&lt;pair&lt;int, timeval&gt; &gt; last_query Как работать с...

Deque - сравнение элементов - C++
Пусть даны две очереди X и Y, содержащие вещественные числа. Из каждой очереди одновременно извлекается по одному числу x и y...

Как работает std::deque? - C++
Пытаюсь разобраться в работе std-шного дека. Веб-серфинг дал следующее: Данные хранятся в куче небольшими блоками(массивами) в виде...


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

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

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