- 论坛徽章:
- 0
|
抽空想欣赏下stl的代码, 下的sgi stl 3.0版本的, 更高版本的到处都是_, 看了头晕。
stl_vector.h里面有段代码, 挺想不通, T x_copy = x; 为啥要产生一个copy
为啥后面不直接用: *position = x
我又特意翻了stl的最新版, 还是这样的代码, 有啥特殊含义不?
template <class T, class Alloc>
void vector<T, Alloc>::insert_aux(iterator position, const T& x) {
if (finish != end_of_storage) {
construct(finish, *(finish - 1));
++finish;
T x_copy = x;
copy_backward(position, finish - 2, finish - 1);
*position = x_copy;
}
else {
............................... |
|
|