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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
VaDiG
 Аватар для VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
#1

Функции str.size() и str.length() - в чем их разница? - C++

25.01.2014, 19:31. Просмотров 3274. Ответов 5
Метки нет (Все метки)

Существует 2 функции для определения размера строки в string
C++
1
str.size()
и
C++
1
str.length()
В чем их разница? Почитал, что вроде бы разницы нет никакой, тогда зачем создавать 2 одинаковые функции?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 19:31     Функции str.size() и str.length() - в чем их разница?
Посмотрите здесь:

C++ Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str
C++ Int to Str
Классы STR с++ C++
Аналог str() в С++ C++
Наследование STR c++ C++
C++ почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?
C++ как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str
Int To Str C++
C++ реализация функции c_str() в моем классе Str
Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов? C++
C++ The variable 'str' is being used without being initialized

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6228 / 3473 / 425
Регистрация: 29.11.2010
Сообщений: 9,178
25.01.2014, 19:34     Функции str.size() и str.length() - в чем их разница? #2
length() - понятие длины, это предикатива чисто строк.
size() - метод, который определяет длину у контейнеров STL. string делали похожей на контейнеры по интерфейсу для удобства работы.
Разницы в реализации у функций нет
VaDiG
 Аватар для VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
25.01.2014, 19:37  [ТС]     Функции str.size() и str.length() - в чем их разница? #3
MrGluck, все равно не пойму зачем 2 варианта? когда мы используем строки типа string мы можем пользоваться и тем и тем... для вызова той или иной функции ничего дополнительного не требуется кроме
C++
1
#include <string>
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6228 / 3473 / 425
Регистрация: 29.11.2010
Сообщений: 9,178
25.01.2014, 19:48     Функции str.size() и str.length() - в чем их разница? #4
потому что для кого то размер строки == её длина
для кого то привычнее думать "шаблонами (в значении штампами)" STL.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,508
Записей в блоге: 2
Завершенные тесты: 1
25.01.2014, 20:29     Функции str.size() и str.length() - в чем их разница? #5
Цитата Сообщение от VaDiG Посмотреть сообщение
все равно не пойму зачем 2 варианта?
size более универсально, length точнее отражает сущность операции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vector>
#include <string>
#include <iostream>
     
template < typename Type >
typename Type::size_type foo ( const Type & obj ) {
    return obj.size () ;
    //return obj.length() ;
}
     
int main () {
    std::string str = "123" ;
    std::vector<int> vec { 1 , 2 , 3 , 4 } ;
    std::cout << foo ( str ) << std::endl ;
    std::cout << foo ( vec ) << std::endl ;
}
Tulosba
25.01.2014, 21:05     Функции str.size() и str.length() - в чем их разница?
  #6

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
предикатива
прерогатива?

Yandex
Объявления
25.01.2014, 21:05     Функции str.size() и str.length() - в чем их разница?
Ответ Создать тему
Опции темы

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