essential c++第三章教授了如何通过遍历地址来实现对所有容器类型进行泛型操作,在遍历地址是需要编写函数来返回vector的首元素地址,在这里犯了一个小错误,导致没有成功返回vector的首地址。
template <typename elem_type>
elem_type* begin(vector<elem_type> &vec) { // 这里的形参前必须要加上&,否则返回的不会是原vec的地址,而是复制后传入函数的
return (vec.empty() ? 0 : &vec[0]); // 那个vec的地址
}
错误的原因已经写在注释中了。