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

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

Войти
Регистрация
Восстановить пароль
 
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
#1

wchart_t много есть? - C++

25.12.2009, 13:53. Просмотров 732. Ответов 12
Метки нет (Все метки)

В типе данных wchart_t
C++
1
wchart_t variable = L'я';
Размер переменной будет 4 байта, но насколько я знаю для UTF-8 требуется всего 2 байта. Есть ли какие-то экономные версии типов? Конечно это не много, но суммарно потом это все будет попусту кушать в два раза больше чем надо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2009, 13:53     wchart_t много есть?
Посмотрите здесь:

Есть очень много маленьких текстовых файлов необходимо слить в один файл - C++
Очень много маленьких файлов размером от 500 КБ до 90 МБ. Максимальная длина строки в файлах 80 символов. Всего таких файлов может быть...

Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2 и 5 - C++
Всем привет! Помогите сделать программку в с++, условие: Дано натуральное число. Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2...

Много ошибок - C++
#include <iostream> using namespace std; double F(double X){ return (pow((sin(X) - 2 * cos(2 * X)), 2)); } int main() { ...

Много вопросов - C++
ребят подскажите как зделать Panel прозрачной а текст который в ней есть осталься видимым

XOR не много не понимаю - C++
В общем изучаю XOR и появился вопрос, написал программу 1 которая из файла берет текст и декодирует из XOR в обычный текст , при...

Много ли здесь бреда? - C++
typedef double (*df)(double *x, unsigned N); double Diff (df f, double *x, unsigned N, unsigned i, double dx) { doubel r,l,t; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
25.12.2009, 14:28     wchart_t много есть? #2
Вот
В Windows API, тип wchar_t имеет размер 16 бит. Windows API нарушает стандарт ANSI/ISO C, который требует, чтобы символьный тип wchar_t поддерживал все представимые в системе символы в одном объекте wchar_t. Вместо этого, wchar_t в Windows представляет собой символы (либо часть символа) в кодировке UTF-16.

В GNU/Linux тип wchar_t имеет размер 32 бита.
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
25.12.2009, 15:02  [ТС]     wchart_t много есть? #3
Не, мне надо чтобы с linux дружил, думал просто может есть какие-то "экономные" варианты, так как поддержка всех языков мне не нужна.
Еще вопрос.
Пока в стадии изучения, но по документации понял что мне не что не мешает создать в будущем собственный тип с собственными размерностями памяти (скажем 2-3 байта)? Если да, то насколько будет труден этот подход со своими типами и насколько трудна будет реализации конвертации для вывода?

PS экономия очень важна, обработки текста планируется много, а памяти мало на сервере.
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
25.12.2009, 15:07     wchart_t много есть? #4
Цитата Сообщение от List2006 Посмотреть сообщение
Не, мне надо чтобы с linux дружил, думал просто может есть какие-то "экономные" варианты, так как поддержка всех языков мне не нужна.
Тогда чем тебе unsigned char не угодил. Русский есть, английский тоже - всё что надо для жизни.
Цитата Сообщение от List2006 Посмотреть сообщение
Пока в стадии изучения, но по документации понял что мне не что не мешает создать в будущем собственный типа с собственными размерностями памяти (скажем 2-3 байта)? Если да, то насколько будет гемморен этот подход со своими типами и насколько трудна будет реализации конвертации для вывода?
В C++ любой класс будет занимать достаточно много памяти, но попробовать можно
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
25.12.2009, 15:18  [ТС]     wchart_t много есть? #5
Тогда чем тебе unsigned char не угодил. Русский есть, английский тоже - всё что надо для жизни.
Идея хорошая, можно хранить в собственной кодировке выше номера 127 и можно функцию конвертации написать из char в wchar_t.
Но при каждой обработке (скажем регулярными выражениями) придется часто конвертировать в wchar_t, даже скажу больше придется постоянно конвертировать (так как суть не хранение, а больше обработка и выдача по типу веб-сайта). В итоги относительно получится размер char + wchar_t

PS
придется походу смирится с 4 байтами, лучше простата кода и удобство кодинга тогда =))
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
26.12.2009, 11:24     wchart_t много есть? #6
но насколько я знаю для UTF-8 требуется всего 2 байта.
Плохо знаешь.

И вообще путаешь все.
В программе удобнее работать с символами, которым занимают фиксированное число байт - например тип wchar_t.

А на диске ты можешь записывать в UTF-8, который имеет переменную длину.
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
26.12.2009, 12:22  [ТС]     wchart_t много есть? #7
Я знаю что UTF-8 может занимать от 2-6 байт, по стандарту wchart_t вроде должен место занимать как int.
Но выше я имел что все языки мне не нужны, а кириллица вся умещается в 2 байтах и другие 2 байта просто в никуда расходуются.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,363
26.12.2009, 13:31     wchart_t много есть? #8
Цитата Сообщение от List2006 Посмотреть сообщение
PS экономия очень важна, обработки текста планируется много, а памяти мало на сервере.
Просто добавить памяти на сервер будет намного дешевле, чем платить зарплату разработчику такого "нестандартного" символьного класса даже за один месяц.
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
26.12.2009, 17:28  [ТС]     wchart_t много есть? #9
Цитата Сообщение от CheshireCat Посмотреть сообщение
Просто добавить памяти на сервер будет намного дешевле, чем платить зарплату разработчику такого "нестандартного" символьного класса даже за один месяц.
Мне всегда нравилось на форуме программистов фраза "платить разработчику..." - немного нелепо? По-моему если бы я бы платил кому-то, то я бы даже тут не спрашивал (логично).
Я и есть разработчик, экономия на арендуемой железе, прямо пропорционально отражается на моей зарплате. Отсюда и интерес к экономии.

Понятно что если процессный чилдер имеет в два раза меньше размер (грубо) то и чилдеров таких можно разместить в два раза больше.
А когда ресурс - время не ограничен лучше писать экономно, чтобы не отражалось на кошельке.

PS работающих с серверами отличные взгляды от прикладного ПО.
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
27.12.2009, 15:40     wchart_t много есть? #10
Я знаю что UTF-8 может занимать от 2-6 байт, по стандарту wchart_t вроде должен место занимать как int.
Но выше я имел что все языки мне не нужны, а кириллица вся умещается в 2 байтах и другие 2 байта просто в никуда расходуются.
Еще раз

1) В программе используй wchar_t. Пусть занимает больше памяти, зато не придется переписывать библиотеки.

2) При записи на диск пиши в UTF-8. Русские буквы будут два байта занимать.

Unicode понимаешь разрабатывали чтобы использовать ВСЕ множество символов.
Специально для тебя не делали версию Unicode, где есть только английские и русские буквы.
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
10.01.2010, 12:56  [ТС]     wchart_t много есть? #11
Цитата Сообщение от odip Посмотреть сообщение
Еще раз

Специально для тебя не делали версию Unicode, где есть только английские и русские буквы.
CP1251 (1 байт unsigned)
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
10.01.2010, 17:08     wchart_t много есть? #12
CP1251 (1 байт unsigned)
А это не Unicode
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2010, 11:22     wchart_t много есть?
Еще ссылки по теме:

CMake - много ошибок - C++
Здравствуйте. Помогите пожалуйста скомпилировать игру MineTest . У меня не компилится, комп слабый и интернет медленный. Пожалуйста,...

Не много не понятно (dynamic_cast) - C++
Вот например есть 2 класса: #include <iostream> class One { }; class Two : public One

Найти много решений - C++
Напишите функцию с именем swap(),обменивающих свои значения два типа int(обратите внимание что изменятся значения должны из изменяющей...

Нужно не много доработать - C++
а как сделать, так чтобы при выводе массива z элементы которые повторяются не выводились, то есть если массив а массив b массив z как то...


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

Или воспользуйтесь поиском по форуму:
List2006
24 / 16 / 2
Регистрация: 19.12.2009
Сообщений: 366
11.01.2010, 11:22  [ТС]     wchart_t много есть? #13
Я знаю, но тоже официальная кодировка.
Yandex
Объявления
11.01.2010, 11:22     wchart_t много есть?
Ответ Создать тему
Опции темы

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