Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2013, 12:39   #1
Antej
Пользователь
 
Регистрация: 09.01.2012
Сообщений: 38
По умолчанию deque::size() возвращает 0, при наличии содержимого

имеем следующий участок кода
Код:
    const unsigned int size = 10;
    int array[size] = {4,1,3,2,16,9,10,14,8,7};
    deque<int> heap;
    for (unsigned int i = 0; i < size; i++)
    {
        heap [i+1] = array[i];
    }
    cout << "deck created\n" << "heap.size() = " << heap.size() << endl;
собираем g++ и получаем
Код:
deck created
heap.size() = 0
возникает вполне резонный вопрос - почему, если heap должен содержать 11 елементов?
Antej вне форума Ответить с цитированием
Старый 30.09.2013, 13:10   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

А вы уверены, что можно делать heap[1] = .... для пустого heap?
waleri вне форума Ответить с цитированием
Старый 30.09.2013, 13:14   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

http://www.cplusplus.com/reference/deque/deque/operator[]/
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.09.2013, 13:30   #4
Antej
Пользователь
 
Регистрация: 09.01.2012
Сообщений: 38
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
А вы уверены, что можно делать heap[1] = .... для пустого heap?
здесь об этом ничего не сказано...
http://www.cplusplus.com/reference/d...perator%5B%5D/
Antej вне форума Ответить с цитированием
Старый 30.09.2013, 13:31   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Antej
там сказано, что operator[] возвращает ссылку. этого достаточно, чтоб понять, что на пустом деке его вызывать нельзя. к тому же
Цитата:
If the container size is greater than n, the function never throws exceptions (no-throw guarantee).
Otherwise, the behavior is undefined (which may include throwing).
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 30.09.2013 в 13:38.
pproger вне форума Ответить с цитированием
Старый 30.09.2013, 15:23   #6
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от Antej Посмотреть сообщение
имеем следующий участок кода
Код:
    const unsigned int size = 10;
    int array[size] = {4,1,3,2,16,9,10,14,8,7};
    deque<int> heap;
    for (unsigned int i = 0; i < size; i++)
    {
        heap [i+1] = array[i];
    }
    cout << "deck created\n" << "heap.size() = " << heap.size() << endl;
собираем g++ и получаем
Код:
deck created
heap.size() = 0
возникает вполне резонный вопрос - почему, если heap должен содержать 11 елементов?
Воспользуйтесь командой void push_front(const т &val);
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 30.09.2013, 16:10   #7
Antej
Пользователь
 
Регистрация: 09.01.2012
Сообщений: 38
По умолчанию

большое спасибо всем, вопрос исчерпан.
Antej вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При наличии именниников в запросе, стартовать форму at.kon Microsoft Office Access 4 23.03.2013 12:09
deque. Ошибка при объявлении итератора 8Observer8 Общие вопросы C/C++ 10 26.01.2013 00:31
Ошибка: String[1]: the Size property has an invalid size of 0. mrChester Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 18.01.2012 20:06
Резиновый font-size, Как сделать резионвый font-size в блоке? AlienNation HTML и CSS 0 26.09.2011 09:14
Vista, тормозит проводник при наличии Интернета Beermonza Windows 8 04.11.2009 17:11