edisoncgh的cpp小抄

2022-04-01 做题

开篇文章记录一下C++在算法竞赛中好用的一些小技巧。 // string转int int num = atoi(str.c_str()); // 数组最大元素 int maxElement = *max_element(arr.begin(), arr.end()); // 数组最大元素下标 int *p = max_element(arr.begin(), arr.end()) - arr.begin(); // 数组最小元素 int minElement = *min_element(arr.begin(), arr.end()); // 判断是否是数字 if(isdigit(c)) // 计算一个数二进制形式数位中1的个数 __builtin_popcount(n) // 用数组初始化set // unordered_set也可以 set<int> myset(arr,arr+n) // 两个集合求交集 // 结果返回在ans数组里 set_intersection( set1.begin(), …

阅读全文 →

C++链表

2020-04-06 做题

```cpp // // linklist.cpp // 链表 // // Created by edisoncgh on 2020/4/4. // Copyright © 2020 edisoncgh. All rights reserved. // #include #include #include using namespace std; //构建节点类 class Node { public: int data;//数据域 Node* next;//指针域 }; class List//构建链表类 { public: List();//构建函数 ~List();//析构函数 void createList(int n);//创建一个n结点的链表 …

阅读全文 →

C++类与对象

2020-03-30 语言学习

类在C++中是一个很重要的应用,十分具有学习价值。 类与对象 将数据(属性)与函数(操作)合成一个整体的行为叫封装,在计算机中用类与对象来实现。在C++的类与对象中,核心思想是“函数也可以是数据类型的成员” C++中类的定义 C++中类是一种数据类型。 类的属性 在实际运用中,一种客观事物往往要用到不同的数据类型来描述它不同方面的属性。如商场中的商品:名称:字符串;数量:整型;单价:浮点数;总价:浮点数; 这里运用了三种不同数据类型的四个不同数据成员来描述同一种商品。 上述内容在C++中可以如下表示 : class CGoods{ private : char Name[21] ; int Amount ; float Price ; float Total_value ; }; 其中class是数据类型说明符,表示以下声明的是一个类;"class CGoods"是类头;花括号内的被称为类体,类体内定义了类成员表CGoods是这个类的类型名;public关键字是一种访问限定符。 访问限定符一共有三种:public、 private、protected。第一种说明的成员可以在类体外访问,后两种则不能。限定符的作用域从该符开始一直到下一个限定符前或类体结束前。如果没有设置限定符,那么系统默认为private。private和protected都体现了类具有的封装性。 类的操作 类中除了属性,更重要的部分是对类成员的操作,它们用函数来完成。 class CGoods{ private : char Name[21] ; int Amount ; float Price ; float Total_value …

阅读全文 →

7-7 有理数均值

2020-03-23 语言学习

在pta上完成数据结构的课程作业时发现一道很有意思的题,记录一下。传送门 题面 本题要求编写程序,计算N个有理数的平均值。 输入 输入第一行给出正整数N(≤100);第二行中按a1/b1,a2/b2...的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。 输出 在一行中按a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。 样例 样例输入1 4 1/2 1/6 3/6 -5/10 样例输出1 1/6 样例输入2 2 4/3 2/3 样例输出2 1 这题成功的让我拓宽了关于c语法的知识面,所以我在此记录下来,虽然它不算经典意义上的难题与要题。 首先,因为题目中指明是有理数,所以可以求最小公约数来约分计算,难度降低了不少。使用C++的pair类来存储分子与分母,然后分别读入它们再累加求平均数即可。 #include <cmath> #include <cstdio> #include <utility> …

阅读全文 →