Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/193: Рейтинг темы: голосов - 193, средняя оценка - 4.90
31 / 28 / 18
Регистрация: 13.01.2014
Сообщений: 63
1

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

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

Существует 2 функции для определения размера строки в string
C++
1
str.size()
и
C++
1
str.length()
В чем их разница? Почитал, что вроде бы разницы нет никакой, тогда зачем создавать 2 одинаковые функции?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2014, 19:31
Ответы с готовыми решениями:

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

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

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

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

5
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
25.01.2014, 19:34 2
length() - понятие длины, это предикатива чисто строк.
size() - метод, который определяет длину у контейнеров STL. string делали похожей на контейнеры по интерфейсу для удобства работы.
Разницы в реализации у функций нет
0
31 / 28 / 18
Регистрация: 13.01.2014
Сообщений: 63
25.01.2014, 19:37  [ТС] 3
MrGluck, все равно не пойму зачем 2 варианта? когда мы используем строки типа string мы можем пользоваться и тем и тем... для вызова той или иной функции ничего дополнительного не требуется кроме
C++
1
#include <string>
0
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
25.01.2014, 19:48 4
потому что для кого то размер строки == её длина
для кого то привычнее думать "шаблонами (в значении штампами)" STL.
0
Don't worry, be happy
16987 / 9865 / 1900
Регистрация: 27.09.2012
Сообщений: 24,466
Записей в блоге: 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
Привет! Вот еще темы с ответами:

Корректно ли? string nonVowel = new char[str.size()];
При определение строки можно ли её инициализировать выделением памяти, что бы её потом...

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

Функция length(str) выполянется за О(1)?
функция length(str) выполянется за О(1) или О(N) ? вроде как у любого массива или строки есть одна...

после правки textarea .html(str) .text(str) перестают работать
после правки textarea $(&quot;textarea#id1&quot;).text(data); и $(&quot;textarea#id1&quot;).html(data); перестает...


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

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

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