【发布时间】:2012-12-12 15:02:53
【问题描述】:
看看这个...http://en.cppreference.com/w/cpp/container/vector/insert 编译器如何区分第 3 个和第 4 个,即是制作所需 int 的副本数还是填充提供的范围内的容器。
// 3rd
iterator insert( const_iterator pos, size_type count, const T& value );
// 4th
template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last );
提前谢谢你。
【问题讨论】:
-
所以我们都在同一个波长上,我在你所说的重载中进行了编辑(任意使用 C++11,无论是否使用 C++11,答案都应该相同) .
-
@BjörnPollex 给定
std::vector<double>,v.insert( it, 2, 0 )的重载决议将导致选择模板函数(选项 4),至少在 C++03 中是这样。 (在 C++11 中,措辞不同,只要类型不满足迭代器的要求,就要求模板函数从重载决议中排除。在 C++03 中,措辞要求模板形式如果InputIt解析为整数类型,则具有与非模板形式相同的行为。)
标签: c++ vector containers