ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++刷题知识点

2022-06-06 23:34:58  阅读:202  来源: 互联网

标签:知识点 TreeNode val int nullptr C++ ListNode 刷题


加速输入输出

当碰到ACM模式下的笔试题,使用C++的cincout流,通常会比C原生scanfprintf慢很多。原因是C++为了兼容scanfprintf,做了很多设计。但通常而言,使用cincout会比scanfprintf顺手很多。为了兼顾感觉和效率,可以在代码中添加以下两行,关闭对C的兼容。此时,C++原生输入输出就得到了大幅加强。

std::ios::sync_with_stdio(false);
std::cin.tie(0);

获取整数的最大值和最小值

C++的有符号整数使用4字节进行存储,取值范围为-2^322^32-1。有时需要取到这类极值。在C语言下可以使用#include<limits>,C++下转换成#include<climits>.

最大值:INT_MAX

最小值:INT_MIN

以上二值直接使用即可。

Auto自动推断类型

Java在遍历数组的等操作时,既可以使用访问数组下标的方式,也可用Iteable迭代器的方式。C++中的Auto可以提供类似Java迭代器写法的语法糖。

例如:

// 数组下标访问方式
int q[3] = {1,2,3};
for(int i = 0; i < 3; i++) cout << q[i] << endl;

// Auto关键字自动推断取值
for(auto i:q) cout << i << endl;

列表初始化

列表初始化的特性是在C++11之后生效,目的是方便对结构体的变量初始化。LeetCode官方推荐使用列表初始化的方式,对链表、树等数据结构初始化。

// Leetcode 官方例子
// 二叉树
 struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),right(right) {}
 };

// 链表
 struct ListNode {
    int val;
    ListNode *next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

标签:知识点,TreeNode,val,int,nullptr,C++,ListNode,刷题
来源: https://www.cnblogs.com/Di-iD/p/16350163.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有