Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
VaDiG
30 / 27 / 18
Регистрация: 13.01.2014
Сообщений: 63
#1

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

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

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

Equal(str.begin(), str.end(), str.rbegin()
#include <iostream> #include <string> using namespace std; string str; ...

Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов?
strncpy(itog,str,size+1); cout<<itog; itog вообще не выводится Добавлено...

как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str
как создать функцию или программу, чтобы str состояла из цифр,а также давалась...

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str
Помогите ребят!!!!препод задачи дал для аттестации,сделал фактически все,кроме...

реализация функции c_str() в моем классе Str
Ребята, вот есть у меня в классе Str данные: private: Vec<char> data;...

5
MrGluck
Модератор
Эксперт CЭксперт С++
8075 / 4927 / 1431
Регистрация: 29.11.2010
Сообщений: 13,344
25.01.2014, 19:34 #2
length() - понятие длины, это предикатива чисто строк.
size() - метод, который определяет длину у контейнеров STL. string делали похожей на контейнеры по интерфейсу для удобства работы.
Разницы в реализации у функций нет
0
VaDiG
30 / 27 / 18
Регистрация: 13.01.2014
Сообщений: 63
25.01.2014, 19:37  [ТС] #3
MrGluck, все равно не пойму зачем 2 варианта? когда мы используем строки типа string мы можем пользоваться и тем и тем... для вызова той или иной функции ничего дополнительного не требуется кроме
C++
1
#include <string>
0
MrGluck
Модератор
Эксперт CЭксперт С++
8075 / 4927 / 1431
Регистрация: 29.11.2010
Сообщений: 13,344
25.01.2014, 19:48 #4
потому что для кого то размер строки == её длина
для кого то привычнее думать "шаблонами (в значении штампами)" STL.
0
Croessmah
++Ͻ
14488 / 8269 / 1553
Регистрация: 27.09.2012
Сообщений: 20,312
Записей в блоге: 3
Завершенные тесты: 1
25.01.2014, 20:29 #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 ;
}
0
Tulosba
25.01.2014, 21:05     Функции str.size() и str.length() - в чем их разница?
  #6

Не по теме:

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

0
25.01.2014, 21:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2014, 21:05
Привет! Вот еще темы с ответами:

почему в массиве str хранятся значения str2, ведь в функции создается копия...разве нет?
почему в массиве str хранятся значения str2, ведь в функции создается...

Int To Str
Добрый день, товарищи. Подскажите плиз. Есть структура: SSklad, массив...

Аналог str() в С++
Скажите, пожалуйста, аналог функции str() в С++


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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