dcl5556
极限运动员
展开
-
C++认知
对于社会人士参加的 C++ 职位的面试,如果是大型互联网公司,虽然社会招聘问的更多的是项目经验,适当地为一些基础的算法和数据结构知识做一些准备也是非常有用的。接着,分析和研究每个线程的用途以及线程之间交互的,这就是整体把握,接着找我感兴趣的细节去学习。我曾经面试过一些开发者,看简历项目经验丰富,实际一问的时候,只是把别人的框架或者库拿来包装调用一下,问及其技术原理时,不是顾左右而言他就是说不清道不明模棱两可含糊不清,这一类人往往比不知道还让人讨厌,面试官一般反感这一类面试者所谓的项目经验。原创 2024-04-24 14:39:54 · 794 阅读 · 1 评论 -
c++常用库函数
/ 自定义比较器,实现最小堆// 对于最小堆,如果 a > b,则认为 a 的优先级低于 b// 使用自定义比较器的 priority_queue// 获取队列顶部元素(最小的元素)// 输出: 5return 0;int value;// 比较器,决定 Item 对象的排序逻辑// 根据 value 的大小决定优先级while (!pq.pop();return 0;在这个示例中,Item结构体存储了一个整数值和一个字符串。比较器根据Item的。原创 2024-04-16 17:16:21 · 352 阅读 · 0 评论 -
CMake解析
有关该功能的更多详细信息,请参见以下链接:https://cmake.org/cmake/help/v3.0/command/target_include_directories.html。这对于glob命令尤其重要,如果添加新的源文件,这些命令可能不会始终为您显示正确的结果。创建一个包含源文件的变量,以便于将其轻松添加到多个命令中,例如add_executable()函数。另外,这些变量不仅可以在CMakeLists中使用,同样可以在源代码.cpp中使用。相反,通常直接在add_xxx函数中声明源文件。原创 2024-04-03 16:13:24 · 53 阅读 · 0 评论 -
c++基础含详细demo
内存泄漏(memory leak)是指由于疏忽或错误造成了程序未能释放掉不再使⽤的内存的情况。内存泄漏并⾮指内存在物理上的消失,⽽是应⽤程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因⽽造成了内存的浪费。内存泄露是编程中一个常见问题,特别是在使用像C++这样的语言进行底层内存管理时。它不仅会导致程序运行效率下降,还可能引起程序崩溃或系统资源耗尽。原创 2024-03-15 20:51:20 · 50 阅读 · 0 评论 -
c++语言基础1-A+B
输入描述输入包含一系列的a和b对,通过空格隔开。一对a和b占一行。输出描述对于输入的每对a和b,你需要依次输出a、b的和。如对于输入中的第二对a和b,在输出中它们的和应该也在第二行。输入示例3 411 40输出示例751。原创 2023-12-25 17:24:23 · 63 阅读 · 0 评论 -
c++语言基础15-链表的基础操作3
时间限制:1.000S 空间限制:128MB。原创 2024-01-01 17:20:15 · 364 阅读 · 0 评论 -
c++语言基础3-A+BIII
输入描述输入中每行是一对a和b。其中会有一对是0和0标志着输入结束,且这一对不要计算。输出描述对于输入的每对a和b,你需要在相应的行输出a、b的和。如第二对a和b,他们的和也输出在第二行。输入示例2 411 190 0输出示例630。原创 2023-12-25 19:48:57 · 42 阅读 · 1 评论 -
c++语言基础10-平均绩点
题目描述每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。输入描述有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。输出描述每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。输入示例输出示例除了数组外,我们还经常使用的一种结构是字符串string,字符串表示可以变长的字符序列,用来操作文本数据。原创 2023-12-30 11:08:14 · 1033 阅读 · 0 评论 -
c++语言基础6-数组的倒序与隔位输出
数组的倒序与隔位输出时间限制:1.000S 空间限制:128MB题目描述第一行包含一个整数 n,表示数组的长度。接下来一行包含 n 个整数,表示数组的元素。输出描述首先输出倒序排列的数组元素,然后输出正序数组中每隔一个单位的元素。输入示例52 3 4 5 6输出示例6 5 4 3 22 4 6提示信息数据范围:C++中声明数组的方式为dataType arrayName[arraySize]。// 声明一个包含5个整数的数组。原创 2023-12-26 21:50:38 · 393 阅读 · 0 评论 -
c++语言基础4-A+BIV
我们通常都使用sum += i的形式来书写代码,而且这种形式也常常用于其他算数运算符,比如-=、*=、/=、%=如果N=0时,表示输入结束,且这一行不要计算。每行的第一个数N,表示本行后面有N个数。对于每一行数据需要在相应的行输出和。你的任务是计算若干整数的和。原创 2023-12-26 20:19:24 · 36 阅读 · 0 评论 -
c++语言基础14-链表的基础操作2
请编写一个程序,实现以下操作:构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。输入描述第一行包含两个整数 n 和 k,n 表示需要构建的链表的长度,k 代表输入的 m 的个数。接下来一行包含 n 个整数,表示链表中的元素。接下来一行包含 k 个整数,表示输出链表中的第 m 个元素。输出描述测试数据输出占 k 行。每行输出链表中的第 m 个元素。如果 m 位置不合法,则输出“Output position out of bounds.”。原创 2024-01-01 10:36:43 · 371 阅读 · 0 评论 -
c++语言基础2-A+BII
在上节中,我们提到了几种常见的数据类型,但是在某些情况下,可能会发生数据类型的转换,比如在while(条件判断)循环中,条件判断通常是一个布尔值,即true表示真,false表示假,但是假设我们给定的是一个整数类型的值,编译器会帮助我们进行数据类型转换,将之转换成布尔值,如果整数的值为0,则条件的值为false, 其他非0的数都会转换成true。现实中,我们想要把一件事情做n次,比如数n只羊,就是说第一只羊,第二只羊,第n只羊,这样数,那在编程中是同样的逻辑,只不过这次我们使用的是for循环。原创 2023-12-25 18:51:26 · 34 阅读 · 0 评论 -
数组总结day1day2
暴力解法时间复杂度:O(n)二分法时间复杂度:O(logn)在这道题目中我们讲到了循环不变量原则,只有在循环中坚持对区间的定义,才能清楚的把握循环中的各种细节。左闭右开版本。原创 2023-12-29 22:31:39 · 361 阅读 · 1 评论 -
c++语言基础13-链表的基础操作1
这是因为平时在刷leetcode的时候,链表的节点都默认定义好了,直接用就行了,所以同学们都没有注意到链表的节点是如何定义的。而在面试的时候,一旦要自己手写链表,就写的错漏百出。// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数不定义构造函数行不行,答案是可以的,C++默认生成一个构造函数。原创 2024-01-01 09:39:21 · 793 阅读 · 0 评论 -
c++语言基础7-摆平积木
一天,他把许多积木块组成了好多高度不同的堆,每一堆都是一个摞一个的形式。但是他很懒,他想移动最少的积木块来实现这一目标,你能帮助他吗?积木是一组数据,可以使用上一节中学习的vector来进行处理,输入的n代表积木堆的个数, 因此可以创建一个包含n个元素的容器,容器的默认值为0。接着下一行是n个正整数,表示每一个积木堆的高度h,每块积木高度为1。每组测试样例包含一个正整数n,表示小明已经堆好的积木堆的个数。对于每一组数据,输出将积木堆变成相同高度需要移动的最少积木块的数量。当n=0时,输入结束。原创 2023-12-29 23:03:11 · 398 阅读 · 1 评论 -
c++语言基础12-位置互换
给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换。输入描述输入包含多组测试数据。输入的第一行是一个整数n,表示有测试数据。(整个输入中,只有一个n)接下来是n组测试数据,保证串长为偶数位(串长<=50)。输出描述请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。输入示例输出示例a00abb00。原创 2023-12-30 16:31:09 · 453 阅读 · 1 评论 -
c++语言基础9-打印正方形
编写一个程序,模拟打印一个正方形的框。程序应该接受用户输入的正整数作为正方形的边长,并打印相应大小的正方形框。请注意,内部为空白,外部是由 “*” 字符组成的框。输入描述输入只有一行,为正方形的边长 n输出描述输出正方形组成的框输入示例5输出示例。原创 2023-12-30 08:50:57 · 571 阅读 · 0 评论 -
c++语言基础8-奇怪的信
时间限制:1.000S 空间限制:32MB。原创 2023-12-29 23:44:45 · 397 阅读 · 1 评论 -
c++语言基础11-句子缩写
输出一个词组中每个单词的首字母的大写组合。输入描述输入的第一行是一个整数n,表示一共有n组测试数据。(输入只有一个n,没有多组n的输入)接下来有n行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;单词长度不超过10,由一个或多个空格分隔这些单词。输出描述请为每组测试数据输出规定的缩写,每组输出占一行。输入示例输出示例ADF提示信息注意:单词之间可能有多个空格。原创 2023-12-30 15:52:28 · 894 阅读 · 1 评论 -
c++语言基础5-A+BV
但是题目要求每组数据内部的输出(也就是每行数据之间)是有空行的,但两组数据之间并没有空行,所以在每组数据的最后一行,也就是n被修改为0的时候,不需要输出空行。输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。注意以上样例为一组测试数据,后端判题会有很多组测试数据,也就是会有多个N的输入。当m个数据处理完毕后,表示这一行的数据处理完毕,需要输出一个空行。对于每组输入,输出M个数的和,每组输出之间输出一个空行。只保证每组数据间是有空行的。你的任务是计算若干整数的和。原创 2023-12-26 21:00:49 · 32 阅读 · 0 评论 -
c++语言基础21-图形的面积(面向对象)
类”是现实世界中的实体在计算机世界中的抽象概念,类可以看作是对象的模板,它定义了对象的结构和行为方式,可以用来创建具有相同属性和行为的多个对象,而对象是“类”的实现。类的基本用法C++使用class定义一个类,并在类中定义成员变量和成员方法。访问修饰符指定了成员变量和成员方法的可见性和访问权限。常用的修饰符包括 private(私有)、public(公有)和protected(受保护),public: 被修饰的成员在类的内部、派生类(子类)的内部和类的对象外部都可以访问。原创 2024-01-14 05:41:26 · 1142 阅读 · 0 评论 -
c++语言基础16-出现频率最高的字母
总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!原创 2024-01-04 05:15:00 · 1057 阅读 · 0 评论 -
c++语言基础17-判断集合成员
如果容器为空,则begin和end返回的是同一个迭代器。可以使用比较运算符来判断两个迭代器是否相等,如果迭代器想要从一个元素移动到另外一个元素,可以使用递增++运算符和递减–运算符,表示向前(后)移动一个位置。通过解引用*可以获取迭代器所指的对象,下面的示例表示了vector的遍历。原创 2024-01-04 06:02:47 · 373 阅读 · 0 评论 -
c++语言基础18-开房门
我们常常把map称之为映射,就是将一个元素(通常称之为key键)与一个相对应的值(通常称之为value)关联起来,比如说一个学生的姓名(key)有与之对应的成绩(value),它们是一一对应的,就好像一把钥匙开一扇门,在map中键是唯一的,也只有一个唯一的确定的值。在C++中, map 提供了以下三种数据结构,其底层实现以及优劣如下表所示:map中的键是唯一的,但是multimap则没有此限制。原创 2024-01-04 06:51:35 · 483 阅读 · 0 评论