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

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

Войти
Регистрация
Восстановить пароль
 
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Кодирующие контейнеры? - C++

07.07.2013, 14:05. Просмотров 484. Ответов 17
Метки нет (Все метки)

Существуют ли контейнеры, которые позволяют хранить N элементов за memory<O(N)? Именно на ходу. Скорость не так важна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2013, 14:05     Кодирующие контейнеры?
Посмотрите здесь:

Контейнеры - C++
Здравствуйте. Помогите написать программу на С, с этим языком не знаком почти, а контейнеры вообще не понимаю. В общем беда полная.... ...

Контейнеры - C++
Здравствуйте.Задали задание в котором я ничего не смыслю,дело в том что для того чтобы разобраться мне нужно пару дней но у меня их...

контейнеры С++ - C++
Задача:заполнить массив четными числами ,а множество – нечетными,с пом. алгоритма merge()объединить эти контейнеры в вектор… Но если ...

Контейнеры с++ - C++
Ребят,подскажите пожалуйста,какую функцию нужно использовать,чтобы проверить массив на упорядоченность(мне нельзя использовать циклы и...

Ассоциативные контейнеры - C++
В текстовом файле хранятся слова: - вывести список различных слов (set); - подсчитать количество вхождений каждого слова...

Строки-контейнеры - C++
Клас-контейнер который является абстракцией текста и состоит из обьектов класа строки и методов добавления строки в текст, удаления строки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
07.07.2013, 14:09     Кодирующие контейнеры? #2
nexen, QVector, например, реализует copy-on-write. Т.е. если создаешь копию вектора, то копируется только указатель до тех пор, пока не понадобится изменять значения элементов одного из векторов.

Upd: пардон, не так понял тему, перечитал название - дошло.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.07.2013, 14:27     Кодирующие контейнеры? #3
std::vector<bool>
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 817
Регистрация: 27.09.2012
Сообщений: 18,059
Записей в блоге: 3
Завершенные тесты: 1
07.07.2013, 14:29     Кодирующие контейнеры? #4
Цитата Сообщение от DU Посмотреть сообщение
std::vector<bool>
и как оно отражается на
Цитата Сообщение от nexen Посмотреть сообщение
хранить N элементов за memory<O(N)?
???
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2013, 14:33     Кодирующие контейнеры? #5
Нужен сжимающий контейнер с нелинейным ростом размера архива от количества заархивированной инфы, монотонным ростом коэффициента сжатия от размера и возможностью добавлять инфу без полной распаковки того, что уже есть и последующей запаковки не сжатого контейнера?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.07.2013, 14:41  [ТС]     Кодирующие контейнеры? #6
taras atavin, как уже сказал, скорость не так важна, но было бы не плохо, если бы можно было выбирать между контейнерами, что могу и с распакованной и с не распакованной инфой работать.
Да, с нелинеймным ростом архива, а вот коэффициент сжатия.. недопонял вас. Если имели ввиду, что при 100 байтах ушло 5 байт, а при 1000 уже 100 байт, а не 50, то это не важно. Главное, чтобы он сжимал и, желательно, хорошо сжимал на объемах 100мбайт+.
Если есть такие для стандартных типов, то ладно, а если есть и для кастомных - то вообще шикарно!
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2013, 14:47     Кодирующие контейнеры? #7
Ну как где я толкую о скорости?

Добавлено через 1 минуту
Цитата Сообщение от nexen Посмотреть сообщение
Да, с нелинеймным ростом архива, а вот коэффициент сжатия.. недопонял вас.
Коэффициент сжатия есть отношение размера заархивированной инфы к размеру архива. Ладно, напишу проще. Чем больше, тем компактней?

Добавлено через 2 минуты
То есть 100 байт занимают 90, 1000 - 800, 10000 - 7000, а гигабайт вжимается менее, чем сотню мегов? График размера архива от размера заархивированной инфы должен быть выпуклым?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.07.2013, 14:49  [ТС]     Кодирующие контейнеры? #8
taras atavin, одно дело - распаковать, найти, запаковать, другое дело - найти. На скорость виляет.
Ну значит я правильно понял про коэффициент, о чем и написал
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2013, 14:55     Кодирующие контейнеры? #9
Цитата Сообщение от nexen Посмотреть сообщение
одно дело - распаковать, найти, запаковать, другое дело - найти. На скорость виляет.
Только на расход памяти, произвольный доступ на запись элемента сразу архива может занимать даже больше времени, чем распаковать всё, добавить и снова запокавать.

Добавлено через 1 минуту
Цитата Сообщение от nexen Посмотреть сообщение
Ну значит я правильно понял про коэффициент, о чем и написал
Нет. 100/5=20, 1000/100=10. 10<20, это уменьшение коэффициента сжатия с ростом размера архива, а не увеличение.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.07.2013, 14:56     Кодирующие контейнеры? #10
А не проще ли взять обычный контейнер нужного типа и реализовать сжатие при добавлении, а распаковку при извлечении?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2013, 15:01     Кодирующие контейнеры? #11
И что останется от обычного?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.07.2013, 15:04  [ТС]     Кодирующие контейнеры? #12
taras atavin, эм, это увеличение коэф. сжатия. Делите в неправильном порядке
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.07.2013, 15:08     Кодирующие контейнеры? #13
В правильном. Размер инфы на размер архива. Если 100 байта храним в 5-ти, то размер инфы 100, а архива 5, если 1000 байт храним в 100-а, то размер инфы 1000, а архива 100. размер инфы делится на размер архива. 100/5=20, 1000/100=10. Вот если 100 байт занимают 5, а 1000 40, то 100/5=20, 1000/40=25, рост.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.07.2013, 15:17  [ТС]     Кодирующие контейнеры? #14
taras atavin, эм, что? Вы явно делаете что-то не так, но я вас теперь совсем не понял. Ещё раз, если было 100, а при ахривации ушло (может это слово вы пропустили в прошлый раз?) 5 байт (т.е. стало 95), то коэф. сжатия 5/100 = 5%, а если при 1000 ушло 100, то коэф. сжатия 100/1000 = 10%. Или нет?

update: теперь понял, я дулма про %, как коэффициент сжатия, а вы про "настоящий", так сказать, коэффициент.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2013, 15:20     Кодирующие контейнеры?
Еще ссылки по теме:

контейнеры (литература) - C++
На сегодняшний момент меня заинтересовали контейнеры) Может кто-то подсказать какую-то литературу по ним? В интернете искал, но ничего...

ООП и контейнеры - C++
Здорова господа! От есть задачка: Напишите класс, производный от Container так, чтобы Vector из параграфа 16.2.1 мог использоваться в...

Шаблоны и контейнеры - C++
Подскажите, пожалуйста, отличия между шаблоном и контейнером (кроме наличия итератора).

Контейнеры и итераторы - C++
Тема: иерархия объектов и группа. Итераторы. Задание: Имена всех монархов на заданном континенте.


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

Или воспользуйтесь поиском по форуму:
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.07.2013, 15:20     Кодирующие контейнеры? #15
Сообщение от DU
std::vector<bool>
и как оно отражается на
Сообщение от nexen
хранить N элементов за memory<O(N)?
???
не знаю как в новом стандарте, но в старом стандарте специально оговорен случай для std::vector<bool>
в нем элементы хранятся запаковано.
Yandex
Объявления
07.07.2013, 15:20     Кодирующие контейнеры?
Ответ Создать тему
Опции темы

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