Общая строка в C ++? - PullRequest
       5

Общая строка в C ++?

2 голосов
/ 02 ноября 2009

Какую реализацию «разделяемой строки» для C ++ вы бы порекомендовали?

(Извините, если я пропустил аналогичный вопрос. Я посмотрел, но не смог найти)

Ответы [ 3 ]

1 голос
/ 02 ноября 2009

std: :( ​​w) строка может быть разделена, но это не предусмотрено стандартом. QString использует атомный refcount для совместного использования.

1 голос
/ 02 ноября 2009

Я бы использовал STL: std::string и std::wstring.

ТОЛЬКО если вам нужно что-то более причудливое, вы можете использовать умные указатели, чтобы обернуть собственную реализацию. Эти умные указатели присутствуют в новом C ++ STL или boost.

  • boost::shared_ptr например, если вы используете его внутри DLL
  • boost::intrusive_ptr работает над DLL границы.

РЕДАКТИРОВАТЬ: Как отмечено в комментариях, строки STL не гарантируются неизменными по своей природе. Если вы хотите, чтобы они были такими, используйте спецификатор const.

0 голосов
/ 02 ноября 2009

Рекомендую начинать со стандартных строк, std::string и std::wstring.

Однако есть одна оговорка:

Ни один из двух строковых классов не обеспечивает конкретную кодировку. Если вы хотите, чтобы ваше приложение работало хорошо при работе с другими языками или языками, отличными от английского, вы должны либо начать с std :: wstring, либо использовать что-то вроде UTF8-CPP , что позволяет работать с UTF-8 строки.

Как указал Джоэл Спольски , вы должны знать, в какой кодировке находятся ваши строки, чтобы правильно их обрабатывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...