Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 388 389 [390] 391 392 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5836
,
|
|
|
|
Цитата D_KEY @ Взаимоисключающие параграфы. Как ты собрался использовать Сишные либы и при этом одновременно с этим работать только в стиле С++? Очень просто: ![]() ![]() std::string mystr = " KILLER "; trim( mystr.c_str() ); std::cout << mystr; Заметь, нет тут временных переменных. Так логичнее, так понятнее. |
|
Сообщ.
#5837
,
|
|
|
|
KILLER, ты так и не объяснил, как ты, собственно говоря, собираешься разрешить писать Сишным функциям в С++ строки.
Можно пример кода для "правильных" строк в С++? Добавлено Цитата KILLER @ Цитата D_KEY @ Взаимоисключающие параграфы. Как ты собрался использовать Сишные либы и при этом одновременно с этим работать только в стиле С++? Очень просто: ![]() ![]() std::string mystr = " KILLER "; trim( mystr.c_str() ); std::cout << mystr; Заметь, нет тут временных переменных. Так логичнее, так понятнее. Просто великолепно Какой будет результат mystr.length() после вызова trim и почему? |
|
Сообщ.
#5838
,
|
|
|
|
Цитата D_KEY @ KILLER, ты так и не объяснил, как ты, собственно говоря, собираешься разрешить писать Сишным функциям в С++ строки. Самый примитивный случай, это когда строка представляет собой массив, для совместимости с С-строками, заканчивающийся '\0', в таком случае, все проблемы сведутся к тому, что придется высчитвать каждый раз size, но зато работать станет удобней. И к тому же это самый примитивный вариант. Второе что приходит в голову, как я уже говорил, это сделать некий метод release, подоие метода auto_ptr::release, который будет отдавать в ручное владение этим массивом/строкой. Добавлено Цитата D_KEY @ Просто великолепно Какой будет результат mystr.length() после вызова trim и почему? Цитата KILLER @ в таком случае, все проблемы сведутся к тому, что придется высчитвать каждый раз size |
|
Сообщ.
#5839
,
|
|
|
|
Цитата KILLER @ Самый примитивный случай, это когда строка представляет собой массив, для совместимости с С-строками, заканчивающийся '\0', в таком случае, все проблемы сведутся к тому, что придется высчитвать каждый раз size, но зато работать станет удобней. Не вижу ничего удобного. Зачем это вообще нужно? Проблема будет не только в подсчете размеров, но и вообще в работе со строками. А если у меня '\0' в середине строки? |
|
Сообщ.
#5840
,
|
|
|
|
Цитата D_KEY @ Не вижу ничего удобного. Зачем это вообще нужно? Проблема будет не только в подсчете размеров, но и вообще в работе со строками. А если у меня '\0' в середине строки? Ахаха... Щас, я щас посмеюсь в доволь, потом найду одну тему в тематике, и ты поймешь нечто! |
|
Сообщ.
#5841
,
|
|
|
|
Цитата KILLER @ Тебе может и станет удобней, да вот только это будет неудобно для строк размером в несколько сотен мегабайт.в таком случае, все проблемы сведутся к тому, что придется высчитвать каждый раз size, но зато работать станет удобней. KILLER, тебе уже давно пора постичь дао С++ - его гибкость превыше всего. Даже твоего желания совместить строки и Сишные АПИ. Если надо - сделай сам. Достаточно простой воркараунд тут уже приводили. Не нравится - переходи на перл или пых, где твоё желание уже реализовано. Только забудь тогда про гибкость - работать с Си-строками там уже не получится никак. |
|
Сообщ.
#5842
,
|
|
|
|
Цитата KILLER @ Ахаха... Щас, я щас посмеюсь в доволь, потом найду одну тему в тематике, и ты поймешь нечто! Все, я посмеялся, тему с горем пополам нашел, Запись 0 символа, давай вместе покурим эту тему. Сделаем выводы... Добавлено Цитата Adil @ Тебе может и станет удобней, да вот только это будет неудобно для строк размером в несколько сотен мегабайт. фак мой мозг... Для чего такую строку в памяти хранить? |
|
Сообщ.
#5843
,
|
|
|
|
Цитата KILLER @ Цитата KILLER @ Ахаха... Щас, я щас посмеюсь в доволь, потом найду одну тему в тематике, и ты поймешь нечто! Все, я посмеялся, тему с горем пополам нашел, Запись 0 символа, давай вместе покурим эту тему. Сделаем выводы... Добавлено Цитата Adil @ Тебе может и станет удобней, да вот только это будет неудобно для строк размером в несколько сотен мегабайт. фак мой мозг... Для чего такую строку в памяти хранить? ![]() А где ее хранить? Относительно темы - скажи, что там? Я ее плохо помню, но я там вроде утверждал, что нечего нулю делать в строке. Я и сейчас не стал бы так делать, но это не значит, что это неправильно. |
|
Сообщ.
#5844
,
|
|
|
|
Цитата D_KEY @ А где ее хранить? в файле. Гдеж еще, или по твоему нормально хранить в динамическом массиве строку размером в сотни мегабайт!!! ? Боюсь спросить, а если вдруг резервная копия понадобица(тобишь временный массив), чо копировать все это дело во временный вектор( это еще + сотни мегабайт), так да? Цитата D_KEY @ Относительно темы - скажи, что там? Я ее плохо помню, но я там вроде утверждал, что нечего нулю делать в строке. Я и сейчас не стал бы так делать, но это не значит, что это неправильно. А ты почитай на досуге. Там сложно персказать суть, ибо тема представляет из себя сказку "лебедь рак и щука" ... Смысл в том, что некоторые считают вот это: Цитата D_KEY @ А если у меня '\0' в середине строки? отнюдь не проблемой. Добавлено Цитата KILLER @ отнюдь не проблемой. главное чтобы размер строки равнялся тому кол-ву букв, которое ты хочешь увидеть на экране... |
|
Сообщ.
#5845
,
|
|
|
|
Цитата KILLER @ Ну если мы не знаем - для чего, то это не значит, что это никому не нужно? Или ты предлагаешь добавить в стандарт пункт - "при хранении в std::basic_string<> строки длиннее 1М символов - программа ill formed"? фак мой мозг... Для чего такую строку в памяти хранить? |
|
Сообщ.
#5846
,
|
|
|
|
Цитата Adil @ Ну если мы не знаем - для чего, то это не значит, что это никому не нужно? Или ты предлагаешь добавить в стандарт пункт - "при хранении в std::basic_string<> строки длиннее 1М символов - программа ill formed"? Не, я ниче не предлогаю, я просто не представляю что можно в такой строке хранить? Войну и Мир? |
|
Сообщ.
#5847
,
|
|
|
|
Цитата KILLER @ А если файлов (и файловой системы) - нет? в файле. Гдеж еще, или по твоему нормально хранить в динамическом массиве строку размером в сотни мегабайт!!! ? Боюсь спросить, а если вдруг резервная копия понадобица(тобишь временный массив), чо копировать все это дело во временный вектор( это еще + сотни мегабайт), так да? Мы ведь С++ обсуждаем, а не Визуал Студию? Добавлено Цитата KILLER @ Ну, логи, например. Не, я ниче не предлогаю, я просто не представляю что можно в такой строке хранить? Войну и Мир? Добавлено Еще раз повторю, если мы не представляем, для чего это может понадобиться, это не повод считать, что это не понадобится ни когда и ни кому. |
|
Сообщ.
#5848
,
|
|
|
|
Цитата Adil @ А если файлов (и файловой системы) - нет? Мы ведь С++ обсуждаем, а не Визуал Студию? Например? Может тогда это какая то системщина, и лучше другой ЯП подобрать? Цитата Adil @ Ну, логи, например. В памяти? Цитата Adil @ Еще раз повторю, если мы не представляем, для чего это может понадобится, это не повод считать, что это не понадобится ни когда и ни кому. Не, не спорю, конечно найдеца кул программер, который обязательно сделает так, чтобы всю доступную память использовать под строку. Но что то мне подсказывает, что стандартные строки в таком виде в котором они есть сейчас, его всеравно не спасут в этом случае Добавлено Adil, да и вообще, может тогда юзать другой класс для таких целей? не одним же std::string живем всетаки... |
|
Сообщ.
#5849
,
|
|
|
|
Цитата KILLER @ Для системшины другой - не С++ - язык? Однако.Например? Может тогда это какая то системщина, и лучше другой ЯП подобрать? Кстати, те же контроллеры часто имеют только ROM и RAM до 512МБ, линукс разворачивается с ROM в RAM, создавая в RAM файловую систему. Хранение в файле бессмысленно, так как равнозначно хранению в памяти. А ещё бывает, что есть и винчестер или USB-флешка подмонтирована. Но постоянно записывать - потребление питания возрастает, записывают редко, отключая девайсы за не надобностью в промежутках между записью. А еще бывает статическая энергонезависимая RAM, работают с ней как с обычной памятью, но зато, если питание девайса пропадёт, эта память получает питание от батарейки и вся инфа на ней сохраняется - в режиме без чтения/записи такая память практически ничего не потребляет и питания обычной компьютерной батарейки хватает на несколько недель. Достаточно примеров? Добавлено Цитата KILLER @ ну так если это текст, зачем другой то? Adil, да и вообще, может тогда юзать другой класс для таких целей? не одним же std::string живем всетаки... |
|
Сообщ.
#5850
,
|
|
|
|
Цитата Adil @ Для системшины другой - не С++ - язык? Однако. Ну наверное больше С подошел бы... ХЗ... Цитата Adil @ Кстати, те же контроллеры часто имеют только ROM и RAM до 512МБ, линукс разворачивается с ROM в RAM, создавая в RAM файловую систему. Хранение в файле бессмысленно, так как равнозначно хранению в памяти. А ещё бывает, что есть и винчестер или USB-флешка подмонтирована. Но постоянно записывать - потребление питания возрастает, записывают редко, отключая девайсы за не надобностью в промежутках между записью. А еще бывает статическая энергонезависимая RAM, работают с ней как с обычной памятью, но зато, если питание девайса пропадёт, эта память получает питание от батарейки и вся инфа на ней сохраняется - в режиме без чтения/записи такая память практически ничего не потребляет и питания обычной компьютерной батарейки хватает на несколько недель. Достаточно примеров? ну да, я так и подумал что щас будут перечислять всякие там контроллеры... Я только не пойму, нахрена мне там строка на пару сотен метров нужна? Цитата Adil @ ну так если это текст, зачем другой то? Чтобы максимально ускорить работу с девайсом, необязательно же там классы юзать. Я не пойму о чем речь? Причем тут контролеры и std::string? Ну хорошо, используй его в своих контролерах. В чем проблемы? |