set中怎么插入结构体?

学术版

```cpp struct point { int x,y; bool operator<(point a) { return x==a.x?x<a.x:y<a.y; } }; ``` 这样就行了。 还有要善用STL的find函数。
by Prean @ 2020-04-06 10:02:03


@[gzf2008](/user/216248) 首先你要重载小于号,下面是一种做法(定义在结构体外部): ```cpp bool operator <(point a, point b) { //这里是自己定义的比较规则 return a.x < b.x; } ``` 然后,要往$s$里面插入结构体,可以这样做: ```cpp point a; a.x = 0; a.y = 0; s.insert(a); ``` 或者你可以定义一个构造函数,像这样定义一个结构体: ```cpp struct point { double x, y; point(double x, double y) :x(x), y(y) {} }; ``` 然后这样插入: ```cpp s.insert(point()); ``` 等价于: ```cpp s.insert(point(0, 0)); ```
by Zlc晨鑫 @ 2020-04-06 10:02:24


我会pair,可我不熟练
by gzf2008 @ 2020-04-06 10:04:17


@[gzf2008](/user/216248) 倒数第八行?你这个$a$存的是$node$,不是$int$,你```upper_bound```的是一个整形变量。
by Zlc晨鑫 @ 2020-04-06 10:05:15


额,谢啦
by gzf2008 @ 2020-04-06 10:06:51


@[gzf2008](/user/216248) 还有你这代码好像不止第八行错吧……
by Zlc晨鑫 @ 2020-04-06 10:06:54


@[gzf2008](/user/216248) 题号发一下
by Zlc晨鑫 @ 2020-04-06 10:07:40


别的OJ
by gzf2008 @ 2020-04-06 10:08:13


热心的 @[Zlc晨鑫](/user/297555) @[limaopipi2022](/user/160839) 谢谢
by gzf2008 @ 2020-04-06 10:09:56


上一页 |