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

QVector::reserve() + std::vector::reserve() и добавление в начало - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
gromo
 Аватар для gromo
367 / 266 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
24.08.2013, 23:09     QVector::reserve() + std::vector::reserve() и добавление в начало #1
Если зарезервировать в новосозданном векторе место, а затем добавлять объекты классов в начало - будет ли эффективнее вставка? Или предварительная резервация эффективна только для push_back() ?

Прошу ответить и о QVector и о std::vector.
спасибо!

Ps. Думаю, в std::vector вставка в начало по своей природе неэффективна, но может в QVector тролли что-то мутнули
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 23:09     QVector::reserve() + std::vector::reserve() и добавление в начало
Посмотрите здесь:

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? C++
C++ std::vector
std::vector::erase C++
C++ vector<vector<double>> + std::sort()
Вывести значения std::vector<std::vector<int*> > C++
C++ Разница между resize и reserve
C++ Std::vector
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
25.08.2013, 01:24     QVector::reserve() + std::vector::reserve() и добавление в начало #21
Цитата Сообщение от Avazart Посмотреть сообщение
Если числа длинный
а что нельзя выбрать соотв. тип для числа?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Нарушитель
6953 / 5191 / 256
Регистрация: 10.12.2010
Сообщений: 22,768
Записей в блоге: 17
25.08.2013, 01:26     QVector::reserve() + std::vector::reserve() и добавление в начало #22
Цитата Сообщение от castaway Посмотреть сообщение
Откуда такая информация?
Отсюда :
Цитата Сообщение от gromo Посмотреть сообщение
Так нужно, потому что это результат перевода дробной части числа в определенную систему счисления. Результирующий QString выводится в QLineEdit.
gromo
 Аватар для gromo
367 / 266 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.08.2013, 01:26  [ТС]     QVector::reserve() + std::vector::reserve() и добавление в начало #23
Цитата Сообщение от castaway Посмотреть сообщение
Переводить числа в другую систему счисления через строки? Не глупо ли?
Это пока прототип и чисел unsigned long long + QString пока хватает. Но в дальнейшем хочу расширить для произвольных чисел.
А что бы вы посоветовали для длинной арифметики с произвольной точностью? Я собирался Boos.Multiprecision, но пока это сильно высокооктановая библиотека для меня только начинаю осваивать.
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 01:28     QVector::reserve() + std::vector::reserve() и добавление в начало #24
Цитата Сообщение от Avazart Посмотреть сообщение
Отсюда :
упущено начало
Цитата Сообщение от gromo Посмотреть сообщение
нет, я вставляю цифры в виде QChar ('1') в начало строки. Так нужно, потому что это результат перевода дробной части числа в определенную систему счисления.
Avazart
Нарушитель
6953 / 5191 / 256
Регистрация: 10.12.2010
Сообщений: 22,768
Записей в блоге: 17
25.08.2013, 01:29     QVector::reserve() + std::vector::reserve() и добавление в начало #25
Цитата Сообщение от gromo Посмотреть сообщение
А что бы вы посоветовали для длинной арифметики с произвольной точностью?
gmp, mpir, NTL (и еще какая-то либа есть ) если ты про готовое.

А если про учебное так поищи в разделе, не раз подымалась тема длинных чисел.

Пример gmp на C++Builder http://www.cyberforum.ru/blogs/131347/blog488.html
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
25.08.2013, 01:30     QVector::reserve() + std::vector::reserve() и добавление в начало #26
Цитата Сообщение от gromo Посмотреть сообщение
А что бы вы посоветовали для длинной арифметики с произвольной точностью?
Я бы посоветовал не изобретать велосипед. http://gmplib.org/, http://www.mpfr.org/
Цитата Сообщение от gromo Посмотреть сообщение
Я собирался Boos.Multiprecision, но пока это сильно высокооктановая библиотека для меня только начинаю осваивать.
... только начинаю осваивать что?
gromo
25.08.2013, 01:33  [ТС]
  #27

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
только начинаю осваивать что?
Boost.Multiprecision. (Запятую пропустил). Ну а если вас удивляет, что я "осваиваю" библиотеку, то увольте Для меня она сложновата

Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 01:35     QVector::reserve() + std::vector::reserve() и добавление в начало #28
Цитата Сообщение от gromo Посмотреть сообщение
Это пока прототип и чисел unsigned long long + QString пока хватает. Но в дальнейшем хочу расширить для произвольных чисел.
А что бы вы посоветовали для длинной арифметики с произвольной точностью? Я собирался Boos.Multiprecision, но пока это сильно высокооктановая библиотека для меня только начинаю осваивать.
Если я правильно понял, что ты пытаешься сделать, то мб стоит подумать о хранении в обратном порядке? Т.е. младшие разряды идут первыми.
castaway
25.08.2013, 01:36
  #29

Не по теме:

Цитата Сообщение от gromo Посмотреть сообщение
Boost.Multiprecision. (Запятую пропустил).
Да я не об этом.. Мне почему-то показалось что ты с языком С++ не сильно знаком. Зачем прыгать выше ж*пы?)

gromo
 Аватар для gromo
367 / 266 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.08.2013, 01:42  [ТС]     QVector::reserve() + std::vector::reserve() и добавление в начало #30
Цитата Сообщение от Nekto Посмотреть сообщение
Если я правильно понял, что ты пытаешься сделать, то мб стоит подумать о хранении в обратном порядке? Т.е. младшие разряды идут первыми.
Выше уже была мысль, что оптимизировать "вывод" не стоит, лучше поработать над алгоритмом. Тем более, что там не большие объемы для вывода.

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Мне почему-то показалось что ты с языком С++ не сильно знаком. Зачем прыгать выше ж*пы?)
Вам не показалось)) по-тихоньку ознакамливаюсь, но куда-то прыгать же надо

Avazart
Нарушитель
6953 / 5191 / 256
Регистрация: 10.12.2010
Сообщений: 22,768
Записей в блоге: 17
25.08.2013, 01:45     QVector::reserve() + std::vector::reserve() и добавление в начало #31
Цитата Сообщение от gromo Посмотреть сообщение
Вам не показалось)) по-тихоньку ознакамливаюсь, но куда-то прыгать же надо

Не по теме:

STL, Qt, boost, gmp может не все сразу ?

Хотя...

castaway
25.08.2013, 01:45
  #32

Не по теме:

Цитата Сообщение от gromo Посмотреть сообщение
Вам не показалось)) по-тихоньку ознакамливаюсь
Ну тогда может не стоит начинать знакомство с длинной арифметики!?)

gromo
25.08.2013, 01:50  [ТС]
  #33

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Ну тогда может не стоит начинать знакомство с длинной арифметики!?)
Ну это вы уже сильно Как-никак, 3-летний стаж (не коммерческий) с++ у меня есть и все это время изучал STL. Недавно перелез на Qt, boost

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 01:52     QVector::reserve() + std::vector::reserve() и добавление в начало
Еще ссылки по теме:

C++ Контейнер std::vector
Как изменять размер std::vector<std::vector>? C++
Указатель на std::vector C++
C++ Std::function and std::vector
Std::vector/QVector в классе или std::vector/QVector классов? C++

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

Или воспользуйтесь поиском по форуму:
castaway
25.08.2013, 01:52     QVector::reserve() + std::vector::reserve() и добавление в начало
  #34

Не по теме:

Ну так сам сказал:

Цитата Сообщение от castaway Посмотреть сообщение
по-тихоньку ознакамливаюсь

Yandex
Объявления
25.08.2013, 01:52     QVector::reserve() + std::vector::reserve() и добавление в начало
Ответ Создать тему
Опции темы

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