pair
当想要将两个元素绑在一起作为一个合成元素,又不想定义一个结构体时,可以使用pair。
1. How to use?
#include // 导入map也可以使用pair,因为map的内部实现涉及pair,因此添加头文件map会自动添加utility
using namespace std;
2. pair的定义
pair name;
初始化
pair p("123", 123);
make_pair("123", 123);
3. pair中的元素访问
只有两个元素
p.first
p.second
4. 常用函数解析
比较操作数
两个pair类型数据可以直接使用==、!=、、>=比较大小,比较规则是先以first的大小作为标准,只有当first相等时才去判别second的大小。
5. 常见用途
用来代替二元结构体及其构造函数,可以节省编码实践
作为map的键值对进行插入
m.insert(make_pair("1", 1);
m.insert(pair("2", 2));
6. 习题
三角形的重心(中心)为三角形三条中线的交点
重心坐标((x1+x2+x3)/3,(y1+y2+y3)/3)
外心定理:三角形的三边的垂直平分线交于一点。该点叫做三角形的外心。
垂心定理:三角形的三条高交于一点。该点叫做三角形的垂心。
内心定理:三角形的三内角平分线交于一点。该点叫做三角形的内心
自己的代码+其他人的答案
#include
#include
#include
#include
#include
using namespace std;
int main() {
int N;
while (scanf("%d", &N) != EOF && N != 0) {
for (int i = 0; i < N; i++) {
pair A;
pair B;
pair C;
scanf("%lf%lf%lf%lf%lf%lf", &A.first, &A.second, &B.first,
&B.second, &C.first, &C.second);
printf("%.1lf %.1lf\n", (A.first + B.first + C.first) / 3,
(A.second + B.second + C.second) / 3);
}
}
return 0;
}