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

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

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

C++ deque<float>
C++ STL, deque, pair
C++ std::deque
C++ vector, list, deque
C++ deque iterator not dereferencable
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
15.01.2014, 20:36     Контейнер deque #2
Цитата Сообщение от triadec_96 Посмотреть сообщение
Но не знаю к чему это "у конце которой 0"
признак конца последовательности
triadec_96
 Аватар для triadec_96
11 / 11 / 0
Регистрация: 27.12.2012
Сообщений: 427
Завершенные тесты: 1
15.01.2014, 23:05  [ТС]     Контейнер deque #3
Цитата Сообщение от Croessmah Посмотреть сообщение
признак конца последовательности
А как вычислить найбольшие числа?
Есть какая-то процедура типа max(d)?
Ибо в С++ нельзя создать процедуру,входящей "перемонной" которой есть контейнер (то есть пишу
int max(deque);
а оно deque не принимает).
volvo
Супер-модератор
 Аватар для volvo
21676 / 14149 / 3937
Регистрация: 22.10.2011
Сообщений: 25,000
Записей в блоге: 2
16.01.2014, 00:15     Контейнер deque #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); // выдаст тебе позицию максимального элемента дека
triadec_96
 Аватар для triadec_96
11 / 11 / 0
Регистрация: 27.12.2012
Сообщений: 427
Завершенные тесты: 1
16.01.2014, 02:45  [ТС]     Контейнер deque #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: идентификатор не найден
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
16.01.2014, 02:52     Контейнер deque #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);
}
Yandex
Объявления
16.01.2014, 02:52     Контейнер deque
Ответ Создать тему
Опции темы

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