C++ STL 映射和设置容器的 insert() 函数违反了默认参数的规则?

C++ STL map and set containers' insert() function violating the rules for default parameters?

本文关键字:函数 默认 规则 参数 映射 STL 设置 insert C++      更新时间:2023-10-16

insert()接受参数:(set::迭代器,int)迭代器参数是可选的,因此我认为它在实现中必须有一个默认值。

现在,具有默认值的参数不应该在末尾吗?insert函数不应该像:insert(int,set::迭代器)或insert(int)那样调用吗?

或者实现使用了函数重载?如果是这样,为什么不使用默认参数呢?

它不是默认参数,只是存在多个函数重载。

std::pair<iterator,bool> insert( const value_type& value );
template< class P >
std::pair<iterator,bool> insert( P&& value );
std::pair<iterator,bool> insert( value_type&& value );
iterator insert( iterator hint, const value_type& value );
iterator insert( const_iterator hint, const value_type& value );
template< class P >
iterator insert( const_iterator hint, P&& value );
iterator insert( const_iterator hint, value_type&& value );
template< class InputIt >
void insert( InputIt first, InputIt last );
void insert( std::initializer_list<value_type> ilist );
insert_return_type insert(node_type&& nh);
iterator insert(const_iterator hint, node_type&& nh);