2017-05-09 99 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=

相關問題