如何对包含对的向量进行排序
how to sort this vector including pairs
我想根据内部对的第一个元素,即本例中的a
,按升序排序。但这根本不是排序。我不确定我的函数func
逻辑是否正确。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool func(const pair<int,pair<int,int> >&i , const pair<int,pair<int,int> >&j )
{
i.second.first < j.second.first ;
}
int main()
{
vector<pair<int,pair<int,int> > > v;
pair<int,int> pi;
pair<int,pair<int,int> > po;
int n,a,b,c,i;
cin>>n;
while(n--)
{
cin>>a>>b>>c;
pi=make_pair(a,b);
po=make_pair(c,pi);
v.push_back(po);
}
cout<<endl;
for(i=0;i<v.size();i++)
{
cout<<v[i].second.first<<" "<<v[i].second.second<<" "<<v[i].first<<endl;
}
sort(v.begin(),v.end(),func);
cout<<endl;
for(i=0;i<v.size();i++)
{
cout<<v[i].second.first<<" "<<v[i].second.second<<" "<<v[i].first<<endl;
}
return 0;
}
您忘记了函数中的return语句
bool func(const pair<int,pair<int,int> >&i , const pair<int,pair<int,int> >&j )
{
i.second.first < j.second.first ;
}
改为写入
bool func(const pair<int,pair<int,int> >&i , const pair<int,pair<int,int> >&j )
{
return i.second.first < j.second.first ;
}
此外,您还应该包括标题<utility>
,其中定义了类std::pair
#include <utility>
相关文章:
- 将结构向量排序为子组
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在对向量排序后更改索引值?c++
- C++向量排序给出0作为输出
- 将许多向量排序在一起
- 根据一个向量对多个向量排序
- 编译错误向量排序和联合
- C++我自己的函数进行向量排序
- 将字符串的向量排序为日期"yyyymmdd"
- C++ 通过使用旧向量进行预排序来改进向量排序
- C 向量排序 .h .cpp中的单独文件
- 向量排序-c++
- 将向量排序到一个无序映射c++11中
- 向量的向量排序
- c++向量排序方法编译失败,返回预期表达式
- 如何对bitset向量排序
- 向量排序的基础上只有先
- 我如何以相同的方式对两个向量排序,而条件只使用其中一个向量
- 列表排序和结构体向量排序之间的性能差距.c++
- 如何基于第二个字符串对字符串向量的向量排序