C++基础
fresher_Z
这个作者很懒,什么都没留下…
展开
-
lock_guard函数
一. 功能解释lock_guard函数可以用来包装Mutex,做到自动锁定和解锁。2. linux下源码template<typename _Mutex> class lock_guard { public: typedef _Mutex mutex_type; explicit lock_guard(mutex_type& __m) : _M_device(__m) { _M_device.lock(); } lock_gu原创 2022-02-27 19:33:49 · 576 阅读 · 0 评论 -
C++11中的bind函数
#include <functional>bind函数调用形式:auto newCallable = bind(Callable, arg_list);其中newCallable是一个可调用对象,arg_list是逗号分割的参数列表,对应传给callable的参数。arg_list中的参数有可能含有_n的名字,n是正整数,表示“占位符”,如_1, _2等等。#include <iostream>using namespace std;void add(int&a原创 2022-02-25 09:58:27 · 535 阅读 · 0 评论 -
C++11中function函数
包含头文件 #include <functional>//普通函数int add(int i, int j) { return i+j;}//lambda表达式auto add = [](int i, int j){ return i+j;}//函数对象类class add{ //仿函数 int operator() (int i, int j){ return i+j; } }struct add{原创 2022-02-24 10:36:11 · 886 阅读 · 0 评论 -
进制转换-负数补码
题目出处:力扣https://leetcode-cn.com/problems/convert-a-number-to-hexadecimal/class Solution {public: string toHex(int num) { if(num == 0){ return "0"; } long _num = num; if(num < 0){ _原创 2021-10-02 17:36:49 · 146 阅读 · 0 评论 -
两因子差超过x的最小整数-腾讯笔试
题目:对于至少有4个因子的整数n,若其满足任一两个因子之差大于等于x,求最小的整数n思路:对于整数n,1和n本身为其两个因子,只需找到第一个大于1+x的质数l,和第一个大于l+x的质数r,其乘积r*l即为答案 int T; cin >> T; for (int t = 0; t < T; ++t) { int x; cin >> x; int l = 1 + x; for (; l < INT_MAX原创 2021-09-27 11:57:51 · 116 阅读 · 0 评论 -
计算器-腾讯笔试
题目描述:实现一个计算器的功能,输入是字符串,只包含整数字符和‘+’,‘x’,‘@’三种字符运算符。'@'优先级最高,'x'次之,‘+’最低。计算表达式的值。思路:所有表达式均有效,因此符号的个数一定比数字个数少一位。用两个栈实现,一个栈存放数字,一个栈存放运算符。 遍历字符串,同时以运算符的优先级规律做入栈和出栈操作,若当前运算符的优先级大于运算符栈顶元素的优先级,则将该运算符入栈;反之,则弹出栈中元素进行计算,直到当前运算符优先级大于运算符栈顶元素的优先级,将当前运算符入栈。运算符出栈的过程也原创 2021-09-27 11:05:05 · 143 阅读 · 0 评论 -
二分查找左右边界
题目出处:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/思路:https://leetcode-cn.com/problems/binary-search/solution/er-fen-cha-zhao-xiang-jie-by-labuladong/class Solution {public: int left_bound(vector<i.原创 2021-09-04 23:05:25 · 96 阅读 · 0 评论 -
移动语义与std::move函数
移动语义 C++11中引入了移动语义,目的是防止不必要的复制,以提高程序性能。若一个函数要返回临时对象,如果是自己创造的一个临时对象,那首先回调用该临时对象的构造函数,拷贝构造函数和析构函数。 RVO(return Value Optimization)是一种编译器的优化机制,它的目的就是为了消除为保存返回值而创建的临时对象。std::move 将一个左值对象变换成一个右值对象...原创 2021-09-02 15:28:21 · 198 阅读 · 0 评论 -
295. 数据流的中位数
目录题目基础知识补充优先队列map、set题目题目出处:https://leetcode-cn.com/problems/find-median-from-data-stream/思路:在数据插入的过程中维护一个大根堆和一个小根堆,并始终保持大根堆的元素个数==小根堆的个数或者大根堆的元素个数==小根堆的个数-1。大根堆中存放的是数据流的较小半段元素;小根堆中存放的是数据流中的较大一半的元素。每次数据插入都针对小根堆。流程:若小根堆为空则将该元素直接插入小根堆。原创 2021-08-27 15:15:57 · 59 阅读 · 0 评论 -
C++单例类
1. 构造函数为私有2. 对象指针是类的静态成员class people {private: std::string name; int age; static people *instance;public: static people* getInstance() { if (instance == nullptr) { instance = new people("11", 10); ..原创 2021-08-20 23:53:36 · 75 阅读 · 0 评论 -
进制的转换
题目出处:https://leetcode-cn.com/problems/excel-sheet-column-number/思路:进制转换,显然这是一个将26进制的数转换成一个十进制的数,按照进制展开并求和即可。class Solution {public: int titleToNumber(string columnTitle) { int ans = 0; int n = columnTitle.size(); for(i原创 2021-07-30 15:59:31 · 43 阅读 · 0 评论 -
C++类的三种构造函数
构造与析构#include <stdio.h>#include <string>#include <iostream>#include <string.h>using namespace std;class stu{private: int age = 0; std::string name = ""; char *str = nullptr;public: stu(){ cout <原创 2021-07-28 22:33:38 · 74 阅读 · 0 评论 -
C++常用关键字的用法
mutable: 当类或者结构体中的某个变量被mutable关键字修饰是,及时这个结构体或者类被实例化为const类型,其中被mutable修饰的变量仍然可以被修改。volatile: 有些编译器为了优化程序性能,导致有些变量不直接从内存中取,而是将其放在寄存器中,从寄存器中直接读取。因此volatile修饰的数据,编译器不可对其进行执行期寄存于寄存器的优化。explicit: 禁止类构造函数进行自动隐式转换,explicit关键字只能用于修饰只有...原创 2021-07-28 22:32:07 · 138 阅读 · 0 评论