Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический массив, Есть ли списки типа DWORD? 
:(
    Опции темы
HexoGenus
Дата 7.1.2003, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Тут поднимался вопрос как динамически расширить массив char
для этих целей удобнее всего использовать тип String
ведь он уже содержит все возможности необходимые для работы со строками
Код

String strText;
strText.SetLength(5); //Увеличиваем длинну char-массива до 5 символов
strText[1]='1';
strText[2]='2';
strText[3]='3';
strText[4]='4';
strText[5]='5';
strText=strText+String("Э");
ShowMessage(strText); //В данный момент длинна char-массива 6 символов
strText.SetLength(203); //Увеличиваем длинну до 203 символов
int i=7;
char* lpBuffer =strText.c_str();
for (char c='7';c<='f';c++)
 {
  lpBuffer[i-1]=c;
  i++;
 }
lpBuffer[i-1]=0;
ShowMessage(strText);

и не вижу смысла изобретать велосипед...
String уже включен в наши программы если вы использовали хотя бы один визуальный компонент его содержащий
(а на кой ладан нам билдер если не использовать визуальные компоненты?)
и в итоге память под String в программе уже отведена и его использование будет не намного растратнее использования char (или нет???) а учитывая что при работе с char вам прийдется подключать еще кучу дополнительных самопальных или фирменных функций для работы с char-строками то использование char еще и накладно...
Кстати мне интересно все ли тут смотрели в HELP описание методов String?
Если нет то очень рекомендую...
(F1->В поиске задать "AnsiString data type"->в этом тексте выбрать Reference)

Теперь сам вопрос...
Нет ли в VCL Чего_то_похожего на String но унифицирующего работу не с char-массивами а с массивами числовых типов или к примеру списков Хэндлов???
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
Step
Дата 7.1.2003, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Ты конецчно прав, и оно конечно работает, вот только я думаю что тебе неплохо былобы еще и поэксперементировать с тем что ты придумал, посмотреть как куски памяти перебрасываються, как долго работает твой вариант и т.д и т.п. Тогда и поймеш зачем изобретать велосипед...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Baa
Дата 7.1.2003, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Уж не знаю, есть ли в билдере такое чудо... но вообще вот: CArray <DWORD> m_hWindows;


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Vaulter
Дата 7.1.2003, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



не ну если есть String, да еще и с c_str()
знамо STL, знамо стринг определяется как

typedef basic_string<char> string;

тоесть то что тебе нуна:

basic_string<DWORD> strdw;
basic_string<HANDLE> strhd;


--------------------
PM MAIL WWW ICQ   Вверх
mavrik
Дата 9.1.2003, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.1.2003

Репутация: нет
Всего: нет



String - это такая тормозная вещь
В файл  менеджере уменьшала загрузку списка файлов в 4 раза за ед времени
Перераспределение памяти даже тогда когда не надо
PM MAIL   Вверх
HexoGenus
Дата 9.1.2003, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(Step @ 07.1.2003, 02:08)
Ты конецчно прав, и оно конечно работает, вот только я думаю что тебе неплохо былобы еще и поэксперементировать с тем что ты придумал, посмотреть как куски памяти перебрасываються, как долго работает твой вариант и т.д и т.п. Тогда и поймеш зачем изобретать велосипед...

Хммммм.... а не наоборот???
Сначала нужно понять нужно ли это, а уже потом экспериментировать...

Сам посуди:
1. Я точно знаю что тем ребятам которые писали Билдер я скорее всего в подметки не гожусь и свои функции для работы со строками мне скорее всего лучше чем они не написать (да и зачем мне это, ведь я не участвую в написании новых языков программирования а платят мне за написание новых программ)...
2. Если я могу использовать сишные библиотечные функции для объединения строк, динамического увеличения размера массива, поиска в строке и т.д. то есть те функции которые "как тебе кажется" будут работать быстрее чем встроенные функции String то откуда ты знаешь что сотрудники Borland не знали про эти функции (учитывая что для C++ они их и писали) и не догадались в классе String использовать их же?
3. Использовать вставки на ассемблере для для улучшенной обработки строк??? Да что я свой MS Word писать собрался???

И скажем так даже если я изобрету этот велосипед... то кто это заметит???
Ты думаешь что скорость обработки текстовых строк это основной фактор определяющий конкурентоспособность приложения для Windows?
Представь картину, приходит покупатель в фирму торгующую бухгалтерскими программами и спрашивает:
"Дайте мне самую быструю бухгалтерскую программу"...

PS: Хотя кто его знает может именно так думал дядя Билли когда писал свою операционку :-)

PPS: Есть у кого нибудь добротное русское человеческое описание как работать со строками при помощи String ? (А то обидно будет написать его а потом выяснить что кто то уже это сделал)  :sneaky2
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
HexoGenus
Дата 9.1.2003, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(mavrik @ 08.1.2003, 19:26)
String - это такая тормозная вещь
В файл  менеджере уменьшала загрузку списка файлов в 4 раза за ед времени
Перераспределение памяти даже тогда когда не надо

Не можешь дать образцы кода из твоего файл менеджера
тот который с char и тот который со String...
Очень хотелось бы протестировать...
может получится что-нибудь ускорить используя String :-))))))
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.