能否更具体的描述问题
by iiiiiyang @ 2023-01-31 10:10:11
@[wang0728](/user/738168) 两个帖子内容一样,代码一样,建议删掉一个,否则可能会被禁言。
by Xy_top @ 2023-01-31 10:12:19
@[forqprever](/user/739297) 一运行就会报错,并且出现一个c++内部的代码
by wang0728 @ 2023-01-31 10:15:39
@[Xy_top](/user/637796) 删除了
by wang0728 @ 2023-01-31 10:16:11
@[wang0728](/user/738168) 你内层的第二个循环也用了i,应该换成别的变量
by Asimplename @ 2023-01-31 10:16:28
@[wang0728](/user/738168) 你这结构体排序没加cmp啊……
by _xEr_ @ 2023-01-31 10:17:32
@[wang0728](/user/738168) 结构体不能直接排序,需要内部重载运算符或者写比较函数。
by Strelitzia_ @ 2023-01-31 10:18:28
@[wang0728](/user/738168)
在
```cpp
for(int i=1;i<=n;i++){
sort(a+1,a+1+n);
}
```
这句话中,应该改为:
```cpp
sort(a+1,a+1+n,cmp);
```
其中 cmp 为你自己写的排序函数比如:
```cpp
bool cmp(s x,s y){
return x.y<y.y;//按 y 升序排序
}
```
by gesong @ 2023-01-31 10:20:25
cmp:
```cpp
bool cmp(s a,s b){
return a.x<b.x;//按x从小到大排序
}
```
```cpp
bool cmp(s a,s b){
return a.y<b.y;//按y从小到大排序
}
```
写好cmp,sort的形式为(a,a+n,cmp);
有一个巧妙地方法 < 是左小右大,所以是从小到大排序;> 是左大右小,所以是从大到小排序
by _xEr_ @ 2023-01-31 10:20:37
你需要给sort加一个cmp,改成类似下面这种格式
```
inline bool cmp(s a,s b)
{
return a.x>b.x; //你需要的关键字排序方式
}
//...
sort(a+1,a+n+1,cmp);
```
by iiiiiyang @ 2023-01-31 10:20:39