CB *_*ley 92
a.push_back(x)被定义为具有与(void)a.insert(a.end(),x)支持它的序列容器相同的语义.
参见ISO/IEC 14882:2003 23.1.1/12 [lib.sequence.reqmts]中的表68.
neu*_*ont 16
有一个细微的差别push_back返回void是否insert返回iterator到元素刚插入.
顺便说一下,还有另一种方法来验证它们是否做同样的事情:编译以下代码
int main()
{
std::vector<int const> v;
v.push_back(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器会打印很多恼人的消息,只需读取,你会发现push_back调用insert(如果没有,请尝试编译v.insert(v.end(), 0),看看他们是否调用相同的插入函数).
| 归档时间: |
|
| 查看次数: |
72205 次 |
| 最近记录: |