1

Тема: Створення стрічки типу string фіксованої довжини.

Дуже просте питання. В описі класу string не знайшов конструктора, який би створював стрічку із заданою довжиною. Задати довжину можна потім за допомогою методу resize(), але для цього треба писати 2 інструкції замість одної:

     string s;
     s.resize (20);

Підкажіть, може я щось десь пропустив і таки можна задати довжину стрічки під час її створення, як звичайний символьний массив наприклад:   
     

 char s [20];

Дивно, що ніде не знайшов подібної інфи  *DONT_KNOW*

2 Востаннє редагувалося 0xDADA11C7 (21.09.2014 16:45:27)

Re: Створення стрічки типу string фіксованої довжини.

отакий ще конструктор існує, де char c - заповнювач

string (size_t n, char c);
Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

3

Re: Створення стрічки типу string фіксованої довжини.

Це тому, що ця операція безглузда. Рядок - не масив для зберігання символів, а єдине поняття - рядок. "Створити рядок з аби-чого заданої довжини" - це вам не треба, це неправильна абстракція. Власне, навіть resize не потрібен, краще використовуйте reserve, якщо хочете гарантувати швидке збільшення довжини.
Втім, можете використовувати відповідь 0xDADA11C7 - але, ще раз, це, швидше за все, наслідок неправильної абстракції.

4

Re: Створення стрічки типу string фіксованої довжини.

koala написав:

Власне, навіть resize не потрібен, краще використовуйте reserve, якщо хочете гарантувати швидке збільшення довжини.
абстракції.

+1

Don’t do as I have done
Win where I have lost
Have where I have none