最近在上算法课程,老师要求用C++来做,刚好软件开发选的也是C++(虽然自己选的方向是Java)。
做题的过程中才发现自己其实基础并不是很牢固,故记录一下。
C++结构体
格式:
1
struct Example{
int a;
};
struct是结构体的关键字,Example相当于结构体的一个主体,定义变量可以如下:
Example exam;
2
typedef struct{
int a;
}Example;
这里跟第一个是一样的
3
struct Example{
int a
}exam;
这里在定义结构体的时候就定义了变量。
结构体的排序
直接上代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct example {
double a,h;
};
bool comparison(example a, example b) {
return a.h < b.h;// <表示升序,>表示降序
}
void mysort(vector<example>& exam) {
sort(exam.begin(), exam.end(), comparison);
}
int main() {
int number;
cin >> number;
vector<example> exam(number);
double a, h;
for (int i = 0; i < number; i++) {
cin >> a >> h;
exam[i].a = a;
exam[i].h = h;
}
mysort(exam);
for (int i = 0; i < exam.size(); i++) {
cout << exam[i].a << " " << exam[i].h << endl;
}
return 0;
}