C++
文章平均质量分 69
研究僧-彬彬
这个作者很懒,什么都没留下…
展开
-
【C++】decltype类型指示符的用法
在秋招笔试中遇到这样一道题目,于是编写该文章对decltype进行一个总结,方便以后翻阅。C++有两种类型说明符,auto和decltype。它们的区分在于auto必须要计算表达式然后推断数据类型,而decltype不实际计算表达式的值。原创 2022-09-22 16:51:24 · 456 阅读 · 0 评论 -
【C++】编程题遇到行数不固定的字符串(以逗号或空格分割)
istringstream从string读取数据,ostringstream向string写入数据,而stringstream即可从string读取数据,也能向string写数据(也是后面用到的)。getline和cin都是可以读取字符串,但是cin读取字符串是以空格符、换行符、制表符为结束标志,getline是以换行符为读取标志。...原创 2022-08-17 12:01:36 · 536 阅读 · 0 评论 -
【C++】智能指针如何实现引用计数?用static计数会产生什么问题?
定义一个myclass类,里面包含一个num成员变量和一个getNum函数。privateintnum;publicnum(n){cout原创 2022-07-26 17:44:34 · 2194 阅读 · 0 评论 -
【C++】当ACM模式中,不定行输入数据,且每行字符串以逗号隔开或空格隔开
数据如上,行数是不固定的,且每行字符串多少个不固定,用逗号隔开,输出要求排序。原创 2022-07-22 23:37:03 · 1832 阅读 · 1 评论 -
【C++】只允许一次类类型隐式转换,字符串字面量并不是string类型
Demo类本身并没有接收字符串字面值的转换构造函数,但是有针对string的转换构造函数,所以这里面发生了一次隐式转换,将字符串字面值转换为string,然后调用string转换构造函数。这里发生了两次转换,第一次是字符串字面值转换为string,第二次是string转换为Demo类型。因为第一次的字符串字面值转换为string是显式转换,编译器只需要完成一次string转换为Demo类,没有超过一次。所以代码中以string为形参的构造函数就是一条string转换为Demo类型的转换构造函数。......原创 2022-07-18 16:59:09 · 540 阅读 · 1 评论 -
【C++】枚举类型的一些概念
介绍类枚举类型的一些概念原创 2022-07-05 11:32:24 · 241 阅读 · 0 评论 -
指针数组和数组指针
指针数组、数组指针、指向二维数组的数组指针原创 2022-07-02 20:24:35 · 243 阅读 · 0 评论 -
【C++】对拷贝构造函数 深浅拷贝 的理解 拷贝构造函数作用及用途?什么时候需要自定义拷贝构造函数?
对拷贝构造函数 深浅拷贝 的理解 拷贝构造函数作用及用途?什么时候需要自定义拷贝构造函数?原创 2022-06-22 23:07:38 · 831 阅读 · 0 评论 -
【算法】LeetCode第6076题,如何确定用int还是long long及不要对浮点数进行【等于比较】
这是LeetCode周赛的一道题目,难度是中等。思路很简单,细节容易出错。思路只要不断比较斜率,出现新的斜率,线段数就加1。细节class Solution {public: int minimumLines(vector<vector<int>>& pri) { int n = pri.size(); sort (pri.begin(), pri.end()); if (n == 1) return 0;.原创 2022-05-22 14:35:26 · 518 阅读 · 0 评论 -
【算法】Leetcode第215题快速排序内部原理分析(C++)
1.前言LeetCode第215题目为数组中的第K个最大元素,这个题目可以用库函数sort直接排序然后完成。sort(nums.begin(), nums.end());return nums[nums.size() - k];sort函数原理是快速排序,接下来去探究一下这个算法的本质。快速排序是由C.A.R Hoare在1960年发明的,快速排序可能是应用最广泛的排序算法了,如它名字所述,该算法的特点就是快,一般时间复杂度是O(nlgn),但是在某些特殊情况下,时间复杂度会达到(n²)。2原创 2022-04-12 15:50:20 · 2035 阅读 · 0 评论 -
【C++】类的拷贝构造函数参数为什么一定要是引用类型?
在《剑指offer》里面有这样一道面试题,以下代码会出现什么问题。class A {private: int value;public: A(int n) {value = n;} A(A other) {value = other.value};};int main(){ A a = 10; A b = a; }答案是编译错误。主要的错误点在于A(A other) {value = other.value};。这里具体分析下为什么这个拷贝构造函数参数不能是传值参数。拷贝构造函数原创 2022-05-17 16:30:41 · 1196 阅读 · 0 评论 -
【C++】设计模式------单例模式(懒汉和饿汉)
本文参考自《大话设计模式》,想借此记录一下对书本内容的理解,并以自己项目为例子采用C++语言进行举例。概念单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。通俗点讲,在程序当中创建了一个类,我们希望它仅能被实例化一次,产生一个对象。我们不能靠程序员去控制自己只能实例化一次,这是非常不保险的,我们需要代码内在机制帮助我们去控制这样的行为,这就是设计模式的意义。假设一个项目当中只能存在一个AGV(无人小车)对象。三个要点某个类只能有一个实例它必须自行创建这个实例它必须自行向整个系统提原创 2022-05-13 18:56:33 · 2899 阅读 · 1 评论 -
【算法】Leetcode第34题在排序数组中查找元素的第一个和最后一个位置(二分查找的特殊修改)
二分查找的一般模板如下所示,首先边界取的是0和n-1,左边界和右边界都可以取值,所以while的条件语句是left小于等于right。这个一般模板适用的是无重复的有序数组。 int left = 0; int n = nums.size(); int right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; //找中原创 2022-04-28 17:05:54 · 570 阅读 · 1 评论 -
【C++】 const类型总结和赋值判断
关键词const是什么含义?const是只读变量,意味着不能对变量进行写入操作。const int a; //a为常量int const a; //a为常量const int *a; //a为普通指针,指向的是const常量int * const a; //a为常量指针,指向的是普通变量int const * a const; //a为常量指针,指向的是const常量本质:const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效因为const变量一经初始化就不能被原创 2022-04-14 15:14:42 · 1795 阅读 · 0 评论 -
【C++】处理string对象中的字符
字符串特殊函数、转换首字母大写、统计标点符号个数。原创 2021-12-29 23:35:43 · 433 阅读 · 0 评论