В настоящее время я делаю свой собственный векторный контейнер для лучшего понимания реальных контейнеров STL. Я сталкиваюсь с проблемой «вставить» функцию.
Это два прототипа «вставки» в моем векторном контейнере.
// 1
template <typename T, typename Alloc>
void vector<T, Alloc>::insert(iterator position, size_type n, const value_type &val)
// 2
template <typename T, typename Alloc>
template <class InputIterator>
void vector<T, Alloc>::insert(iterator position, InputIterator first, InputIterator last)
Когда я пытаюсь использовать функцию вставки в main. cpp, как показано ниже,
int main() {
ft::vector<int> my;
my.insert(my.begin(), 5, 6); <-- it calls second proto.
return (0);
}
Я намеревался вызвать первый прототип, но он вызывает второй, предназначенный для параметров итератора ... Не могли бы вы объяснить, почему это происходит и как его решить?