Должен ли я вернуть std :: strings? - PullRequest
65 голосов
/ 23 июня 2009

Я пытаюсь использовать std::string вместо char* всякий раз, когда это возможно, но я боюсь, что я могу сильно снизить производительность. Является ли это хорошим способом возврата строк (без проверки ошибок на краткость)?

std::string linux_settings_provider::get_home_folder() {
    return std::string(getenv("HOME"));
}

Кроме того, связанный с этим вопрос: при приеме строк в качестве параметров я должен получать их как const std::string& или const char*?

Спасибо.

Ответы [ 12 ]

1 голос
/ 23 июня 2009

Я согласен с @duffymo. Не оптимизируйте до тех пор, пока вы не измерите, это имеет место в двух случаях при микрооптимизации. И всегда: измерьте до и после , которые вы оптимизировали, чтобы увидеть, действительно ли вы изменили ситуацию к лучшему.

1 голос
/ 23 июня 2009

Я согласен с Даффимо. Сначала вы должны создать понятное работающее приложение, а затем, если есть необходимость, оптимизировать атаку. Именно в этот момент у вас будет представление о том, где находятся основные узкие места, и сможете более эффективно управлять своим временем при создании более быстрого приложения.

...