自己创建map结构体 sort + cmp

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Point
{
	int x, y;
};

struct Map
{
	Point p;
	float f;
};

bool cmp(Map x, Map y)
{
	return x.f < y.f;
}

int main()
{
	vector<Map> vec;

	for (int i = 0; i < 10; i ++)
	{
		Map mp;
		mp.p.x = i;
		mp.p.y = i+2;
		mp.f = (5-i) * 2.3;
		vec.push_back(mp);
	}	

	for (int i = 0; i < vec.size(); i ++)
	{
		cout << vec[i].f << " ";
	}
	cout << "\n";

	sort(vec.begin(), vec.end(), cmp);

	for (int i = 0; i < vec.size(); i ++)
	{
		cout << vec[i].f << " ";
	}
	cout << "\n";

	return 0;
} 

时间: 2024-12-21 23:14:08

自己创建map结构体 sort + cmp的相关文章

c++ STL map 结构体

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处. 在一些特殊情况,比如关键字是一个结构体,涉及到排序就会出现问题,因为它没有小于号操作,i

map 结构体

map<node,int> 需要运算符重载< 请注意,不同的node,请务必让它们可以区分出来(node a,b a<b or b<a) 如 node { int a,int b,int c} 则不能仅比较a,b,忽略c. 否则有可能{1,2,3},{1,2,4}被视为同一个node. 可以使用id变量,每次比较id变量.创建node变量时,++id.此时只用比较一次. 但是如果当结构体所有变量都相同时,则两个结构体被视为一样时,不能加id,所有变量都要进行比较. 对应nod

Go创建及结构体变量是指定字段值

package main import ( "fmt" ) type Stu struct { Name string Age int } func main() { //方式1 //在创建结构体变量时,就直接指定字段的值 var stu1 = Stu{"小明", 19} // stu1---> 结构体数据空间 stu2 := Stu{"小明~", 20} //类型推导并省略var //在创建结构体变量时,把字段名和字段值写在一起, 这种写

Codeforces 801C Voltage Keepsake 结构体sort排序+贪心

#include <bits/stdc++.h> using namespace std; struct In{ long long a, b; double t; }s[100005]; bool cmp(In p, In q) { if(p.t < q.t) return true; else if(p.t == q.t && p.a < q.a) return true; return false; } int main() { long long n, p;

结构体sort()

#include <iostream> #include <cstdio> #include <algorithm>//sort要包含的头文件 #include <time.h> using namespace std; struct st { int x,y; }; st s[10]; bool cmp(st a,st b)//自定义的比较函数 { if (a.x<b.x)//先按第一位数升序排列 { return true; } else if (

开门人和关门人(结构体+sort)

每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input 测试输入的第一行给出记录的总天数N ( > 0 ).下面列出了N天的记录. 每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为 证件号码 签到时间 签离时间 其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串. Output 对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔

题目1013:开门人和关门人(结构体自定义cmp排序)

题目链接:http://ac.jobdu.com/problem.php?pid=1013 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: // // 1013 开门人和关门人.cpp // Jobdu // // Created by PengFei_Zheng on 28/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <st

仿函数--创建结构体或类的内部函数指针

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

HDU 2187 悼念512汶川大地震遇难同胞——老人是真饿了(结构体排序,背包????)

悼念512汶川大地震遇难同胞--老人是真饿了 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11747    Accepted Submission(s): 4883 Problem Description 时间:2008年5月16日(震后第4天) 地点:汶川县牛脑寨 人物:羌族老奶奶 [转载整理]牛脑寨是一个全村600多人的羌族寨子