Всем привет ! Наступил на грабли... Имеем строку 35 символом... Соответственно последний индекс в буффере = 34... Делаем assign из этой строки, причем начинаем с 35-го символа. На мой взгляд должен генерится out_of_range... Кто как думает по этому поводу ?
Пример:
std::string str = "Hello World !";
std::string target;
target.assign(str, 13, 2);
std::cout << target << std::endl;
Возможно я не допонимаю концепт STL strings ... киньте ссылки где почитать...
Здравствуйте, yuriyb, Вы писали:
Y>Всем привет ! Наступил на грабли... Имеем строку 35 символом... Соответственно последний индекс в буффере = 34... Делаем assign из этой строки, причем начинаем с 35-го символа. На мой взгляд должен генерится out_of_range... Кто как думает по этому поводу ?
Y>Пример:
Y>Y>std::string str = "Hello World !";
Y>std::string target;
Y>target.assign(str, 13, 2);
Y>std::cout << target << std::endl;
Y>
Y>Возможно я не допонимаю концепт STL strings ... киньте ссылки где почитать...
21.3.5.3 basic_string::assign
basic_string<charT,traits,Allocator>&
assign(const basic_string<charT,traits>& str);
1 Returns: assign(str, 0, npos).
basic_string<charT,traits,Allocator>&
assign(const basic_string<charT,traits>& str, size_type pos,
size_type n);
2 Requires: pos <= str.size()
3 Throws: out_of_range if pos > str.size().
4 Effects: Determines the effective length rlen of the string to assign as the smaller of n and
str.size() — pos.
The function then replaces the string controlled by *this with a string of length rlen whose elements
are a copy of the string controlled by str beginning at position pos.
5 Returns: *this