C++
文章平均质量分 61
亓逸
这个作者很懒,什么都没留下…
展开
-
push_back 和 emplace_back 剖析
emplace_back() 和 push_back()的区别,就在于底层实现的机制不同。push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);原创 2022-12-13 20:27:59 · 6439 阅读 · 7 评论 -
C++ 基础——内存分布与指针
仓库推荐C/C++ 每日一练小仓库,慢慢学习C++ 知识必备仓库C++ wiki_wiki 万能仓库,正在持续更新,由0 - 0.x 持续学习C++ 接口与对应知识仓库。原创 2022-12-11 13:57:50 · 215 阅读 · 0 评论 -
Mac 下设置VScode 背景图片失败解法
前阵子因为mac 配置编辑器vscode 环境,强大vscode 功能(体验),在胡乱添加一些功能,但是却遇到了一个奇怪的问题:vscode 背景图片无法设置问题安装backgroundvscode 背景插件更改,背景无法成功生效由于问题一的出现,就换了个更便捷的插件,需要要求输入ROOT密码。ROOT密码居然怎么输,都不对。原创 2022-12-11 13:51:39 · 2120 阅读 · 0 评论 -
干货:每周一练C++ 小项目
Graphs:C/C++ 底层实现图存储原理(简易版):C 位运算练习boost:boost 库的运用any:任意类型结构底层复现rwlock:boost 库读写锁、mutex 之间,1个生产者、多个消费者频繁读写的性能对比coroutine:C++ 实现协程stack_co:有栈协程pimpl:C++ 封装机制(多种实现)time_log:C++ 计算函数耗时封装类待收集。原创 2022-09-18 10:13:08 · 884 阅读 · 0 评论 -
C++ Boost.Any 源码剖析与实现
强类型语言,例如C++,要求每个变量都有一个特定的类型来定义它可以存储什么样的信息。这种实用像极了JavaScript、Python,允许开发人员将任何类型的信息存储在变量中。原创 2022-08-28 12:04:36 · 820 阅读 · 0 评论 -
C++ 设计篇之——pimpl 机制
Pointer to implementation(PImpl ),通过将类的实现细节放在一个单独的类中,从其对象表示中删除它们,通过一个不透明的指针访问它们(cppreference 是这么说的)通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏......原创 2022-08-06 11:28:55 · 2108 阅读 · 2 评论 -
unordered_map 在读写锁下多线程潜在的core 问题
unordered_map 中读写锁下多线程存在潜在的core 问题原创 2022-07-17 16:55:05 · 831 阅读 · 0 评论 -
C++ 友元
C++友元。为什么要使用C++ 友元。C++ 友元类和友元函数,以及友元函数带来的小麻烦原创 2022-07-16 16:08:38 · 237 阅读 · 0 评论 -
模板实例化导致编译器未能识别decltype(auto)
错误信息重温error: function ‘enqueue<(lambda at practice1.cpp:16:26)>’ with deduced return type cannot be used before it is definedpool.enqueue([i] {^./threadpool.h:23:24: note: ‘enqueue<(lambda at practice1.cpp:16:26)>’ declared heredecltype(a原创 2022-03-22 02:11:00 · 765 阅读 · 0 评论 -
C-默认构造函数什么情况下才真正被合成
C++ 默认构造函数什么情况下才真正被合成 前提知识:C++ 默认构造函数为什么存在以及编译器怎么实现 对于class X,如果没有任何user-declared constructor,那么就会有一个default constructor被隐式(implicitly)声明出来······ 一个被隐式声明出来的default constructor将是一个trivial(浅薄而无能,没啥用的)constructor······ ——摘自《深度探索C++对象模型》 首先需要解读上面原创 2021-10-07 11:24:45 · 159 阅读 · 0 评论 -
leetcode 5 最长回文子串std::pair 和 make_pair运用
LeetCode 5https://leetcode-cn.com/problems/longest-palindromic-substring/给你一个字符串 s,找到 s 中最长的回文子串。输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。class Solution {public: std::pair<int, int> Palindrome(const string& s, int left, int right, c原创 2021-06-18 20:04:00 · 144 阅读 · 0 评论 -
NULL和nullptr的区别
学习目标:欲善其事,必先利其器首先要知道表示空指针有两种方法,1.是NULL 2.是C++11推出的nullptr。那为什么C/C++有了NULL,为什么还要在C++11中推出nullptr呢?一、C/C++ 中的NULL在C语言中,NULL被定义为:#define NULL ((void *)0),在核心为宏定义。首先需要了解宏定义在程序的中的使用:1.无类型判断 2.代码关键字直接替换。#define NULL ((void *)0)int *p = NULL;char *str =原创 2021-03-11 23:00:46 · 2415 阅读 · 0 评论 -
C++手撕快速排序
2021春招时间到了,面试也越来越多,手撕快排也是腾讯、阿里、字节等大厂所必备的知识,在面试过程中,能够正确讲出快排原理与使用代码实现快速排序也是面试的重点复习之一,话不多说,直接进入今日主题:快速排序今日主题:快速排序不介绍快速排序了,直插重点快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用快速排序的时间复杂度为一、快速排序的思想通过一趟排序:将待排数组分成两个部分,左边部份均小于右边部分,则可以再对这原创 2021-03-08 15:38:24 · 592 阅读 · 0 评论 -
[ 十五天学完linux高性能服务器 ] I/O服用高级应用二:聊天室程序
像ssh这样的登录服务通常需要同时处理网络连接和用户输入,这也可以使用I/O复用来实现。本节我们以poll为例实现一个简单的聊天程序,以阐述如何使用I/O复用技术来同时处理网络连接和用户输入。该聊天室程序能让所有用户同时在线群聊,它分为客户端和服务器两个部分。其中客户端程序有两个功能:一是从标准输入终端读入用户数据,并将用户数据发送到服务器;二是从标准输出终端打印服务器发送给它的数据。服务器的功能是接收客户数据,并将客户数据发送到每一个登录到该服务器上的客户端(数据发送者除外)。下面我们依次给出客户端程序和原创 2021-03-06 10:46:35 · 188 阅读 · 3 评论 -
[ 十五天学完linux高性能服务器 ] I/O服用高级应用三:同时处理TCP和UDP请求
服务器程序同时监听多个接口实际应用中,有不少服务器程序能同时监听多个端口,比如超级服务inetd和Android的调试服务adbd。从bind系统调用的参数来看一个socket只能于一个socket地址绑定,即一个socket只能用来监听一个端口。因此,服务器如果要同时监听多个端口,就必须创建多个socket,并将它们分别绑定到各个端口上。这样一来,服务器程序就需要同时管理多个监听socket,I/O复用技术就有了用武之地。另外,即使是同一个端口,如果服务器要同时处理该端口上的TCP和UDP请求,则也原创 2021-03-06 10:12:20 · 228 阅读 · 0 评论 -
TinyHttpServer 服务器复现
TinyHttpServer 服务器复现文章目录TinyHttpServer 服务器复现一、Tinyhttpd服务器二、代码呈现1.注意问题2.代码实现一、Tinyhttpd服务器原项目地址:https://github.com/EZLippi/Tinyhttpd学习借读:https://www.cnblogs.com/nengm1988/p/7816618.html本人复现项目地址(带中文,对代码的注释):https://github.com/EZLippi/Tinyhttpd工具:Ubu原创 2021-03-01 21:39:54 · 353 阅读 · 0 评论 -
Ubuntu vscode配置c/c++环境
Ubuntu vscode配置c/c++环境Ubuntu 配置g++ 环境vscode配置c/c++环境对Linux小白我来说,这次vscode配置c/c++环境可费了我不少功夫,(强调!!必须确保Linux系统已经具有g++环境,否则会出现.out路径查找不到错误)首先网上的资料真的千奇百怪,见怪不怪,参差不齐,没说前提,只说结果,云里雾里的。。所以今天,要写vscode配置c/c++环境详细文章,适用于刚安装Linux系统的小白,当然也适合大佬已经配好g++环境的Ubuntu 配置g++ 环境Li原创 2021-01-12 14:19:26 · 3124 阅读 · 1 评论 -
QT实现精美计算机
QT简介Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。使用QT制作精简计算机是初学者必备技能之一...原创 2019-12-11 18:27:35 · 615 阅读 · 0 评论