尽量使用区间成员函数代替它们的单元素兄弟
本节重点论述区间成员函数的优势.
首先,我们需要知道什么是区间成员函数,区间成员函数如下举例:
insert(v1.begin(),v2.begin(),v2.end())
assign(v1.begin(),v2.begin(),v2.end())
erase(v1.begin(),v2.begin(),v2.end())
....
那什么是它的单元素兄弟呢?如下:
1:
for(vector<int>::const_iterator index = v2.begin();index!=v2.end();index++)
{
v1.push_back(*ci);
}
2:
vector<int>::iterator insertLoc(v1.begin());
for(vector<int>::const_iterator index = v2.begin();index!=v2.end();index++)
{
insertLoc=v1.insert(insertLoc,*index);
insertLoc++;
}
哦,原来区间成员函数是整批整批的进行插入,它们单元素兄弟就是一个一个元素单个插入。这个就是区别,那这个区别对于两种方式有什么优缺点呢?
我认为最重要的优势有两点:
1:区间成员函数的高效
2:区间成员函数的简洁
不知道在哪里看过这样一句话,不会偷懒的程序员不是一个合格的程序员,哈哈,这里的偷懒就是一个功能函数,能少打字就少打字,你少打字写的不累,别人看的也不累。
高效性在于大幅度减少了移动数据的次数,拷贝数据的次数以及申请内存的次数。