C++ set集合 insert报错

yellingf 2019-07-01 08:10:15
报错如下:


代码如下:

#include <stdio.h>
#include <set>
int main(){
std::set<int> myset;
for(int i=1;i<10;i++)
myset.insert(i);
#printf("%d\n",myset.find(3));
#printf("%d\n",myset.end());
}
...全文
424 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggglivw 2019-07-02
  • 打赏
  • 举报
回复
不过你打印返回的迭代器没有意义,迭代器返回以后校验了是否有效,然后打印里面的数据
ggglivw 2019-07-02
  • 打赏
  • 举报
回复
如果#注释那个没错的话,没问题啊。我运行都OK
轻箬笠 2019-07-02
  • 打赏
  • 举报
回复
insert应该没问题。
// set::insert (C++98)
#include <iostream>
#include <set>

int main ()
{
std::set<int> myset;
std::set<int>::iterator it;
std::pair<std::set<int>::iterator,bool> ret;

// set some initial values:
for (int i=1; i<=5; ++i) myset.insert(i*10); // set: 10 20 30 40 50

ret = myset.insert(20); // no new element inserted

if (ret.second==false) it=ret.first; // "it" now points to element 20

myset.insert (it,25); // max efficiency inserting
myset.insert (it,24); // max efficiency inserting
myset.insert (it,26); // no max efficiency inserting

int myints[]= {5,10,15}; // 10 already in set, not inserted
myset.insert (myints,myints+3);

std::cout << "myset contains:";
for (it=myset.begin(); it!=myset.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';

return 0;
}

上面的例子是来自http://www.cplusplus.com/reference/set/set/insert/

另外myset.find()和myset.end()返回的都是iterator,楼主直接打印出来似乎没什么意义。
yellingf 2019-07-02
  • 打赏
  • 举报
回复
引用 1 楼 Italink 的回复:
C/C++注释不是用//吗,其他代码运行没错
注释错了,问题不大,但是主要问题是insert
Italink 2019-07-01
  • 打赏
  • 举报
回复
C/C++注释不是用//吗,其他代码运行没错

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧