我不知道如何更恰当地命名这个问题,但基本上就是这样:
我做了一对pair<int, int> P[20000]和我使用P.first和P.second,但...
当我尝试输入P.first时,就像cin >> P.first[i](我是计数器)一样,它不会让我.它在编译时调用错误.我该如何解决?
编辑:得到了我之前的问题的答案,但新的问题:我正试图在P.second上运行降序排序
sort(P.second, P.second + x, greater<int>());
Run Code Online (Sandbox Code Playgroud)
但它会导致另一个编译错误.我理解为什么会这样,但我该如何解决它.基本上,说对是{{0,0}, {3,2}, {4,-1}, {5,1}}我想要的结果是{{3,2}, {5,1}, {0,0}, {4,-1}}.
我该怎么做呢?
cse*_*cse 10
您的代码中的索引编写错误.
用cin>>P[i].first而不是cin>>P.first[i]
要std:sort使用以下内容:
using Pair = std::pair<int, int>;
auto&& comparator = [](const Pair& lhs, const Pair& rhs){ return lhs.second > rhs.second;};
std::sort( P, P + 20000, comparator );
Run Code Online (Sandbox Code Playgroud)
见这里有关的更多信息std::pair,并在这里有关的更多信息std::sort