标签:stl
尽量使用区间成员函数代替它们的单元素兄弟的理由
// 把一个int数组拷贝到vector前端
int data[numValues]; // 假设numValues在其他地方定义vector<int> v;
...
// 区间成员函数版本
v.insert(v.begin(), data, data + numValues); // 把data中的int插入v前部
// 单元素循环版本vector<int>::iterator insertLoc(v.begin());
for (int i = 0; i < numValues; ++i)
{
insertLoc = v.insert(insertLoc, data[i]);
++insertLoc;
}
单元素循环版本缺点(此处针对vector)
支持区间的成员函数总结:
区间构造。所有标准容器都提供这种形式的构造函数:
container::container(InputIterator begin, // 区间的起点
InputIterator end); // 区间的终点
区间插入。
void container::insert(iterator position, // 区间插入的位置
InputIterator begin, // 插入区间的起点
InputIterator end); // 插入区间的终点
void container::insert(lnputIterator begin, InputIterator end);
区间删除。
每个标准容器都提供了一个区间形式的erase,但是序列和关联容器的返回类型不同。序列容器提供了这个:
iterator container::erase(iterator begin, iterator end);
关联容器提供这个:
void container::erase(iterator begin, iterator end);
区间赋值。所有标准列容器都提供了区间形式的assign:
void container::assign(InputIterator begin, InputIterator end);
Effective STL: 尽量使用区间成员函数代替它们的单元素兄弟
标签:stl
原文地址:http://blog.csdn.net/wzzfeitian/article/details/39432695