
C++
深夜的雨声
这个作者很懒,什么都没留下…
展开
-
C++实现单例模式
单例模式分为饿汉模式与懒汉模式,下面分别对其进行实现:#include <iostream>#include <vector>#include <string>#include <mutex>#include <pthread.h>using namespace std;// 单例饿汉模式class Singleton {private: Singleton() {} static Singleton* in原创 2022-03-29 22:30:00 · 1049 阅读 · 0 评论 -
LC搜索二维矩阵 II
设计一个算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。关键点:从矩阵左下角开始查找。注意:小心数组越界。class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { if (matrix.empty()) return原创 2022-03-24 16:17:57 · 480 阅读 · 0 评论 -
STL中的容器和算法简述
STL的特点:数据结构与算法分离,使其变得非常通用。顺序容器:vector(向量)、list(双向链表)、deque(双端队列)。关联容器:set(集合)、multiset(多重集合)、map(映射)、multimap(多重映射)。容器适配器:stack(栈)、queue(队列)、qriority_queue(带权队列)。算法头文件:<algorithm>,<nu...原创 2020-03-09 20:00:15 · 589 阅读 · 0 评论 -
常见的C++关键字简介
asm 用于在C++源码中内嵌汇编语言。alignas(C++11起) 用来设置内存中的对齐方式,最小是8字节对齐,也可以是16,32,64,128等。alignof(C++11起) 用于返回指定类型的对齐方式。and_eq 表示相与并赋值,等价于&=操作符。not _eq 表示取非并赋值,等价于!=。or_eq 表示相或并赋值,等...原创 2020-03-09 10:41:47 · 849 阅读 · 0 评论 -
牛客编程题——删数(约瑟夫环问题)
问题描述:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一行一个整数n(...原创 2019-05-25 16:42:21 · 629 阅读 · 0 评论 -
判断一个数是不是“Glodon Number”
编写一个算法来判断一个数是不是“Glodon number”。一个“Glodon number”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1,如果可以变成1,那么这个数就是Glodon Number。示例:输入:32输出:true解释:3^2+2^2 = 131^2+3^2 = 1...原创 2019-05-27 22:12:23 · 1178 阅读 · 0 评论 -
牛客剑指offer——机器人的运动范围(C++)
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?class Solution {pu...原创 2019-07-13 11:13:04 · 271 阅读 · 0 评论 -
快速理解(C/C++)指针的概念
通过以下代码快速理解指针:#include <iostream>using namespace std;int main(){ int a = 9, b = 29; int *p_one; p_one = &a; int *p_tow = &b; cout << "a的值: " << a << endl; ...原创 2019-07-13 21:34:45 · 380 阅读 · 0 评论 -
剑指offer——和为S的连续正数序列
这是一道来自牛客上剑指offer的题题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!...原创 2019-06-29 11:02:11 · 164 阅读 · 0 评论 -
智能指针与动态内存
智能指针个人理解,智能指针是用来管理动态内存的,动态内存也就是堆内存,程序用它来存储动态分配的对象,即程序在运行的时候分配的对象。除了动态内存,还有静态内存和栈内存,静态内存用来保存局部 static 对象,类 static 数据成员和定义在函数之外的变量;栈内存用来保存定义在函数内的非 static 对象。静态内存和栈内存由编译器自动分配和释放,而动态内存由程序员手动分配和释放。例如...原创 2019-07-28 10:39:03 · 202 阅读 · 0 评论 -
使用 C++ 编写万年历程序
输入要查看的年份(要求为公元元年以后),就可以输出这一年每个月份的天数。例如输入:2018本程序为实现万年历的功能,请输入要查找的年份:2018一月星期一 星期二 星期三 星期四 星期五 星期六 星期日1 2 3 4 5 6 78 9 10 11 12 ...原创 2018-04-19 10:39:14 · 4950 阅读 · 2 评论 -
用C++语言实现冒泡排序算法
冒泡排序算法为最简单的排序算法,易于实现,也容易理解,下面为实现代码:#include <iostream>using namespace std;void sort(int *arr,int length) //传入数组首地址和数组长度{ int temp; for (int i = 1; i < length; i++) //compa...原创 2019-04-22 17:05:04 · 2685 阅读 · 0 评论 -
牛牛数星星
时间限制:1秒空间限制:32768K一闪一闪亮晶晶,满天都是小星星,牛牛晚上闲来无聊,便躺在床上数星星。牛牛把星星图看成一个平面,左上角为原点(坐标为(1, 1))。现在有n颗星星,他给每颗星星都标上坐标(xi,yi),表示这颗星星在第x行,第y列。现在,牛牛想问你m个问题,给你两个点的坐标(a1, b1)(a2,b2),表示一个矩形的左上角的点坐标和右下角的点坐标,请问在这个矩形内有多少...原创 2018-07-03 16:31:12 · 416 阅读 · 0 评论 -
从数字0~99999中,数字“8”一共出现了多少次
从数字0~9中,数字“8”一共出现了1次;从数字0~99中,数字“8”一共出现了20次;从数字0~999中,数字“8”一共出现了300次;从数字0~9999中,数字“8”一共出现了4000次;从数字0~99999中,数字“8”一共出现了50000次;其实这是有个规律的,也许这就是数学的魅力!!!以下为实现计算数字“8”出现次数的C++代码思路:先将数字转化为字符串,再计...原创 2018-09-13 20:08:58 · 5131 阅读 · 0 评论 -
计算1~n之间的素数
#include <iostream>using namespace std;int main(){ int n, num=0; //只能被1和其本身整除的数为素数 cin >> n; for(int i=2; i<=n; i++) { int m=0; for(int j=2; j<i;...原创 2018-09-21 16:14:11 · 1750 阅读 · 0 评论 -
向 vector 对象中添加元素的成员函数 push_back
对 vector 对象来说,直接初始化的方式适用于三种情况:(1)初始值已知且数量较少;(2)初始值是另一个 vector 对象的副本;(3)所以元素的初始值都一样。 然而更常见的情况是:创建一个 vector 对象时并不清楚实际所需的元素个数,元素的值也经常无法确定。还有些时候即使元素的初值已知,但如果这些值总量较大而各不相同,那么在创建 vector 对象的时候执行初始化...原创 2018-09-22 17:10:46 · 2729 阅读 · 0 评论 -
两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]C++程序:class Solution {public: vector&...原创 2018-09-22 21:25:50 · 234 阅读 · 0 评论 -
最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"C++程序代码class Solution {public: string longestPalindrome(string s) {...原创 2018-09-29 15:58:20 · 176 阅读 · 0 评论 -
内联函数
将函数指定为内联函数(inline),通常就是将它在每个调用点上“内联地”展开。假设我们把shorterString函数定义成内联函数,则如下调用 cout << shorterString(s1, s2) << endl;将在编译过程中展开成类似于下面的形式 cout << (s1.size() < s2.size()...原创 2018-10-19 11:20:54 · 188 阅读 · 0 评论 -
标准IO库简介:面向对象的标准库
IO类1、继承:基类——>派生类;2、3个头文件:<iostream>、<fstream>、<sstream>;3、9个标准库类型4、IO对象不可复制或复制。原创 2018-10-19 19:20:51 · 280 阅读 · 0 评论 -
网易笔试,有一个数列,寻找被3整除的个数
问题描述小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。并且小Q对于能否被3整除这个性质很感兴趣。小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。输入描述:输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。输出...原创 2018-05-31 10:30:21 · 899 阅读 · 0 评论