C++ 以下程序中的这一行如何包含特定元素的迭代器?
我在上找到了以下程序C++ 以下程序中的这一行如何包含特定元素的迭代器?,c++,iterator,stdset,C++,Iterator,Stdset,我在上找到了以下程序 //集合::插入 #包括 #包括 int main(){ std::设置myset; std::set::迭代器; std::配对ret; //设置一些初始值: 对于(int i=1;i 单个元素(1):成对插入(常量值类型&val); 单元素版本(1)返回一个pair,其成员pair::first设置为一个迭代器,该迭代器指向新插入的元素或集合中已存在的等效元素。如果插入了新元素,则pair::second元素设置为true;如果已存在等效元素,则设置为false 上面的
//集合::插入
#包括
#包括
int main(){
std::设置myset;
std::set::迭代器;
std::配对ret;
//设置一些初始值:
对于(int i=1;i
单个元素(1):成对插入(常量值类型&val);
单元素版本(1)返回一个pair,其成员pair::first设置为一个迭代器,该迭代器指向新插入的元素或集合中已存在的等效元素。如果插入了新元素,则pair::second元素设置为true;如果已存在等效元素,则设置为false
上面的解释清楚了一切
for(int i=1;i
单个元素(1):成对插入(常量值类型&val);
单元素版本(1)返回一个pair,其成员pair::first设置为一个迭代器,该迭代器指向新插入的元素或集合中已存在的等效元素。如果插入了新元素,则pair::second元素设置为true;如果已存在等效元素,则设置为false
上面的解释清楚了一切
for(int i=1;i来自:
返回一对,该对由插入元素(或阻止插入的元素)的迭代器和bool
值(如果插入发生)组成
由于示例中的集合已经包含元素20
,因此将返回该元素的迭代器
原因是,插入算法的一部分是为这个新元素找到一个位置。这个位置显然与我们在容器中查找它的位置相同
所以,我们再次看看它应该在哪里,如果它不在那里,我们就把它放在那里。如果它在那里,我们只需返回一个迭代器到这个地方。这个额外的操作基本上是免费的。来自:
返回一对,该对由插入元素(或阻止插入的元素)的迭代器和bool
值(如果插入发生)组成
由于示例中的集合已经包含元素20
,因此将返回该元素的迭代器
原因是,插入算法的一部分是为这个新元素找到一个位置。这个位置显然与我们在容器中查找它的位置相同
所以,我们再次看看它应该在哪里,如果它不在那里,我们就把它放在那里。如果它在那里,那么我们只需返回一个迭代器到这个地方。这个额外的操作基本上是免费的。同时显示std::set::insert
的重载可能会有帮助:std::pair insert(value\u type&&value)
同时显示std::set::insert的重载可能会有帮助:std::pair insert(value&&value);
@JeJo,你说得对!但是,OP提到了C++98(参见他发布的代码的第一行-它在注释中)这就是为什么我特别添加了那个函数签名!@JeJo,你说得对!但是,OP提到了C++98(参见他发布的代码的第一行-在注释中),这就是为什么我特别添加了那个函数签名!
myset contains: 5 10 15 20 24 25 26 30 40 50