2009-01-27 3 views
3

Извините, что вы открыли еще один из этих неопровержимых вопросов о SO, но мне просто интересно узнать о плюсах и минусах всех типов строк на C++. Мой конкретный вопрос заключается в CStrings MFC и std :: string (поскольку я использую только программное обеспечение Windows), но это распространяется на любой из строковых форматов на C++. Что вы все такое - лучший тип строк для использования на C++ и почему?Плюсы и минусы разных строковых типов в C++

ОБНОВЛЕНИЕ: Я действительно нашел дублирующий вопрос. Спасибо тем, кто уже ответил. Просьба направлять любые новые ответы на этот другой вопрос: How do you handle strings in C++?

+0

возможно дубликат [Как вы обрабатывать строки в C++?] (Http://stackoverflow.com/questions/133364/how-do-you- ручка строка-в-с) –

ответ

5

зОго :: строку

  1. Это часть СТЛА
  2. Это портативное.
  3. Использован правильно, он может быть таким же эффективным, как c-strings
  4. Это безопаснее, чем c-строки.
0

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

7

Когда в Риме делайте, как делают римляне. Если вы используете MFC, используйте CString, потому что все классы оптимизированы для него. Что-нибудь еще, используйте std :: string, потому что это стандарт, и вы найдете полезный опыт в других контекстах.

1

STD :: string можно управлять с помощью алгоритмов форсированной строки в дополнение к тем, которые используются в STL. Для меня библиотеки поддержки для std :: string просто били MFC.

3

Подводя итоги ...

станд :: струнные Pros:

  • Портативный
  • STL & подталкивания Поддержка алгоритма
  • более безопасные, чем CStrings

станд :: строка Минусы:

  • Преобразование в CString для MFC может быть медленнее

CSTRING Плюсы:

  • функции MFC оптимизированная для CString

CString Минусы:

  • Не Портативный
  • Нет подталкивания или STL Алгоритм поддержки

 Смежные вопросы

  • Нет связанных вопросов^_^