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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
VaDiG
 Аватар для VaDiG
29 / 26 / 3
Регистрация: 13.01.2014
Сообщений: 63
25.01.2014, 19:31     Функции str.size() и str.length() - в чем их разница? #1
Существует 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
C++ почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?
C++ как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str
Int To Str C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4924 / 2667 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
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
Ворчун
Эксперт С++
 Аватар для MrGluck
4924 / 2667 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
25.01.2014, 19:48     Функции str.size() и str.length() - в чем их разница? #4
потому что для кого то размер строки == её длина
для кого то привычнее думать "шаблонами (в значении штампами)" STL.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11838 / 6817 / 771
Регистрация: 27.09.2012
Сообщений: 16,910
Записей в блоге: 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() - в чем их разница?
Ответ Создать тему
Опции темы

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