Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > std::string::assign vs std::string::operator =


Автор: Alca 19.11.2011, 14:22
В чем смысл std::string::assign, если есть std::string::operator = ?

Автор: boostcoder 19.11.2011, 14:25
assign() может принимать два итератора. остальное нужно смотреть в реализации.

Автор: Alca 19.11.2011, 14:32
string::operator=
Код

public member function
string& operator= ( const string& str );
string& operator= ( const char* s );
string& operator= ( char c );



string::assign
Код

string& assign ( const string& str );
string& assign ( const string& str, size_t pos, size_t n );
string& assign ( const char* s, size_t n );
string& assign ( const char* s );
string& assign ( size_t n, char c );
template <class InputIterator>
   string& assign ( InputIterator first, InputIterator last );


Чего-то я думал, что string::assign быстрее работает, чем string::operator= .. 

Автор: newbee 19.11.2011, 14:42
Assign - более общее решение присваивания, operator= - несколько частных случаев.

Цитата

string::operator=
public member function

string& operator= ( const string& str );
string& operator= ( const char* s );
string& operator= ( char c );

String assignment
Sets a copy of the argument as the new content for the string object.

The previous content is dropped.

The assign member function provides a similar functionality with additional options.

Автор: Alca 19.11.2011, 14:49
Теперь прояснилось

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)