2017-05-09 101 views
1

std::vector课程中的.operator=(std::initializer_list<T>).assign(std::initializer_list<T>)有什么区别?他们也这样做吗?“vector :: operator =”和“vector :: assign”之间的区别是什么?

http://en.cppreference.com/w/cpp/container/vector/operator%3D

http://en.cppreference.com/w/cpp/container/vector/assign

什么是兼具assign和分配新建分配FY操作operator=的整体思路? assign成员是否可以接受多个参数? (但是std::initializer_list是一个参数。)

回答

1

它们的返回类型不同:运算符通过引用返回向量,assign返回void。从技术上说,从initializer_list分配的规范说,元素是“分配或销毁”,而从initializer_list“分配替换元素”(Table 87),但这似乎并不重要:一个实际的实现只是调用另一个(我检查的libC++和libstdC++)

0

什么是兼具assign和赋值操作符的整体思路operator=

你可以通过一对迭代(范围)为assign,但没有到operator=

相关问题