更多C++学习笔记,关注 wx公众号:cpp读书笔记
Item 42: Consider emplacement instead of insertion
如果你拥有一个容器,例如放着std::string
,那么当你通过插入(insertion)函数(例如insert
,push_front
,push_back
,或者对于std::forward_list
来说是insert_after
)添加新元素时,你传入的元素类型应该是std::string
。毕竟,这就是容器里的内容。
逻辑上看来如此,但是并非总是如此。考虑如下代码:
std::vector<std::string> vs; //std::string的容器
vs.push_back