Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Пустая строка против строки нулевой длины - C++

08.01.2013, 13:09. Просмотров 1167. Ответов 7
Метки нет (Все метки)

Как лучше проверять std::string на пустоту:
C++
1
s==""
или
C++
1
s.lengt()==0
?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 13:09     Пустая строка против строки нулевой длины
Посмотрите здесь:
Пустая строка C++
C++ Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки)
Пустая строка в функции C++
Проверить, пустая ли строка. (fstream) C++
Проверка, пустая строка или нет C++
Ввод данных пока строка не пустая C++
C++ Переход на строку и пустая строка в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
08.01.2013, 13:14     Пустая строка против строки нулевой длины #2
taras atavin, лучше всего так:
C++
1
s.empty()
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
08.01.2013, 13:29     Пустая строка против строки нулевой длины #3
Цитата Сообщение от fasked Посмотреть сообщение
taras atavin, лучше всего так:
C++
1
s.empty()
А разве это не одно и то же?
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
08.01.2013, 13:35     Пустая строка против строки нулевой длины #4
Цитата Сообщение от beta-particle Посмотреть сообщение
А разве это не одно и то же?
С чем?
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
08.01.2013, 14:13     Пустая строка против строки нулевой длины #5
s.lengt()==0
с этим.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
08.01.2013, 14:53     Пустая строка против строки нулевой длины #6
beta-particle, да, стандарт описывает операцию empty как "equivalent to size()==0". То есть логической разницы между ними нет. (Я буду говорить про size, потому что length это просто синоним size в классе std::string). Но:
  • для empty стандартом гарантируется время работы за О(1), а для size никаких гарантий нет. Это важно для написания алгоритмов, которые не зависят от типа контейнера (Особенно актуально для структур, основанных на связных списках).
  • empty короче и точнее выражает намерения, проще читается - мы же все равно думаем "if string is empty", а не "if size of string equals zero".
  • ну и еще одна мелочь, операции length нигде кроме std::string нет, а empty есть у любого контейнера.
beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
08.01.2013, 15:18     Пустая строка против строки нулевой длины #7
Спасибо, разъяснил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 16:33     Пустая строка против строки нулевой длины
Еще ссылки по теме:
Условие: если строка пустая - выполнить действие C++
После чтения числа считывается пустая строка C++
C++ Построчное чтение из файла, в токором первая строка пустая
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки C++
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.01.2013, 16:33  [ТС]     Пустая строка против строки нулевой длины #8
Семантически идентичны все варианты, в плане читабельности лично для меня один чёрт, в плане мысли у меня не такая маленькая память, так что о пустой строке я думаю всеми тремя способами сразу: как о значении строки, как о признаке пустоты и как о нулевой длине. И это внутренняя операция библиотеки, врядли её будет читать кто то другой. Поэтому значение в данном случае имеет только время исполнения: вариант, который не гарантирует время исполнения не меньше, чем у другого, признаётся хуже его.
Yandex
Объявления
08.01.2013, 16:33     Пустая строка против строки нулевой длины
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru