自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 问答 (1)
  • 收藏
  • 关注

原创 八股文——操作系统

操作系统C++说白了就是和操作系统打交道,不了解操作系统永远无法发挥C++的优势,因此操作系统在C++开发中尤为重要。1.讲一下C++内存模型(十分重要,十个面试九个问)2.什么是内存泄漏?怎么防止?有用过什么检测工具吗?3.堆和栈的区别4.假设有一个class A,在函数里执行A a = new A()的话,在哪个区?*(不理解分区容易出错)5.什么是栈溢出?内存越界又是什么?6.进程和线程的区别(同样很重要)7.线程有哪些状态(相互间如何转换要讲清楚)8.某个进程有两个线程A,B,A如

2021-11-18 17:43:49 898

原创 八股文——STL和数据结构与算法

STL和数据结构与算法1.STL了解吗?常用哪些容器2.List和vector有什么区别底层:List 带有头结点的双向链表,存储在内存中不连续。​ vector是类似于数组的顺序表,存储在内存中连续。随机访问:vector支持( O(1)),List不支持。插入: List效率为O(1),因为只用更改该节点的前后指针。​ vector为O(n),因为插入vector要移动元素,并且有可能需要再次扩容。内存碎片:因为List是不连续的,可能会出现内存碎片​ 而vector连

2021-11-18 14:45:02 1397

原创 八股文——C11

C++11相关问题(这部分看公司,有些公司是不用C++11标准的)1.有用到过C++11吗?比较了解哪些新特性2.智能指针是什么?3.auto_ptr为什么被废弃了?智能指针又是如何保证安全性的4.RAII是什么?(这个问题面试没问,但了解以后可以额外扩展一下加深面试官印象)RAII,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。像C11的lock_guard和智能指针就是典型的RAII对象。5.

2021-11-18 11:30:47 695

原创 八股文——C++基础知识

C++基础概念1.讲一下虚函数(常问)如果不了解虚函数的概念可以不说,重点要把虚函数表这个概念讲明白。像之前提到的动态多态就是通过虚函数实现的,虚函数底层通过虚函数表来找到相应的函数。含有虚函数的会多一个变量用来存储虚函数表,因此一个含有虚函数且不具备任何变量的类大小是4。这点不要忘记。下面这篇博客就很不错重点需要关注虚函数表内存储顺序以及相关概念。虚函数详解2.构造函数和析构函数可以为虚函数吗构造函数不行,析构函数可以而且在作为基类时虚析构函数是必须的调用构造函数才会分配空间,不分配

2021-11-17 15:18:45 1682

原创 八股文——计算机网络

计算机网络重点:TCP/IP UDP HTTP HTTPS1.模型问题OSI网络七层模型(概念型框架)计算机网络五层模型TCP/IP四层模型模型一定要记得,每层大致的作用和有关协议也得了解ARP, TCP,IP,HTTP,HTTPS,ICMP,DNS这些协议在哪层干什么用的也要了解。网上资料很多,不懂就查,面试中的问题不要求说全但要保证能说出来。2.TCP UDP的区别3.TCP如何保证传输稳定,UDP能做到稳定传输吗?如何做到4.TCP拥塞控制讲解一下(这里要注意的是面试中不只

2021-11-17 11:14:24 5125 1

原创 【无标题】

写在前面这个专栏主要用来记录秋招面试中我遇到的问题,可能不全面但应该也有一定的参考价值。答案慢慢更,其中也会给出一些我自己收藏的复习链接。

2021-11-17 11:07:59 267

原创 八股文——面向对象概念

面向对象1.简单说一下了解的设计模式:工厂模式,单例模式以及单例模式懒汉饿汉的区别2.面向对象三要素并进行简单介绍:继承 在已有代码上丰富功能,适合在对某段类代码进行不同方向的扩展时使用封装 将代码模块化,方便调试,提高代码阅读性多态 C++中分为静态多态和动态多态。​ 静态多态就是指函数重载和模板等,主要发生在编译期。​ 动态多态就是指基类指针指向不同的派生类具有不同用的表现形式,主要通过虚函数实现。3.面向对象和面向过程的区别:面向对象数据以类形式出现,通过公有私有保护等关键

2021-11-17 11:03:22 446

原创 算法学习笔记——归并排序

归并排序归并是一种基于分治的算法,就是将一个数组依次折半拆分成一个个小数组依次排序,最后将这些排序好的数组再合并起来。(分治:大问题拆分为小问题逐个解决)逐步分析假设我们有{5,8,1,0,2,9,7,4}这样一个数组。需要我们进行从小到大进行排序。第一次我们将其拆分成{5,8,1,0} , {2,9,7,4}这样两个数组。第二次再进行拆分:{5,8},{1,0},{2,9},{7,4}四个数组。第三次就会变成8个单独的数字。{5}, {8} , {1} , {0} , {2} , {9

2021-10-09 12:06:32 226

原创 C++11多线程(八) 自定义锁

C++11多线程(八) 自定义锁C++11相关知识介绍差不多以后,我们来看看一些利用c++11特性实现的自定义锁。层次锁正如名字所说,层次锁要求我们在加锁解锁时进行判断,也就是具有先后顺序,如果有低优先级的锁尝试在高优先级锁被上锁之后上锁就会报错。#pragma once//层次锁头文件#include <mutex>#include<iostream>class hierarchical_mutex{public: hierarchical_mutex(i

2021-08-06 13:36:42 476

原创 C++11多线程(七) C++11对多线程的一些补充

文章目录C++11多线程(七) C++11对多线程的一些补充thread_local全局变量局部变量类对象std::this_thread::yield();std::once_flag和std::call_onceC++11多线程(七) C++11对多线程的一些补充thread_localthread_local是一个新引入的关键字,主要用于声明一个变量的作用域。thread_local int x = 0;//这样我们就声明了一个int变量的作用域thread_local代表的作用域是从一

2021-08-02 16:27:02 294

原创 C++11多线程(六) 异步任务浅析

文章目录C++11多线程(六)异步函数浅解std::futurefuture常用函数std::future::wait();std::future::get()std::future::valid()std::future::wait_for() , std::future::wait_until()std::future::share()std::shared_future<>创建有效future的三个方法std::asyncasync和thread的区别std::packaged_taskp

2021-07-07 20:04:33 1503

原创 C++11多线程(五)原子操作简单使用

文章目录C++11多线程(五)原子操作概念std::atomicatomic的方法快速创建原子变量C++11多线程(五)原子操作概念什么是原子?在计算机中我们可以将其理解为“原子是无法分割的最小个体”。什么是原子操作?通过操作原子来实现线程对资源的安全访问,听起来和锁是差不多的,但原子操作更接近于底层,所有效率会更好。互斥锁是一种对象,使你可以执行一系列互斥操作。而原子操作是互斥的单个操作,这意味着没有其他线程可以打断它。原子操作在运行过程中是不会被打断的,这点需要我们记住,原子操作只有完成完

2021-06-30 17:25:06 3157 1

原创 C++11多线程(四) 条件变量

文章目录C++11多线程(四) 条件变量condition_variablecondition_variable::wait()wait_until,wait_fornotify_one,notify_allcondition_variable_anyC++11多线程(四) 条件变量condition_variablecondition_variable是一个类,由字面意思可以很清楚地看出它与条件相关。也就是条件变量。condition_variable没有特别的构造方法,所以我们直接声明就好了。

2021-06-28 18:28:33 1963

原创 C++11多线程(三) lock_guard unique_lock

文章目录C++11多线程(三) lock_guard unique_lock导读Lock_guard示例代码lock_guard<>的第二个参数unique_lockunique_lock源码浅析(部分)unique_lock的第二个参数adopt_lockdefer_locktry_to_lockunique_lock常用函数以及一些补充死锁死锁的概念死锁产生的4个必要条件C++11中防止死锁的方法C++11多线程(三) lock_guard unique_lock导读上一节讲解了四种锁

2021-06-28 00:35:32 1833 1

原创 C++11多线程(二) 互斥量(锁)——四种互斥量

文章目录C++11多线程(二) 四种锁的应用mutex(互斥量)lock(),unlock()封装应用timed_mutex(时间互斥锁)timed_mutex常用方法try_lock_for():try_lock_until():recursive_mutex(递归锁)recursive_timed_mutex补充C++11多线程(二) 四种锁的应用mutex(互斥量)mutex,也就是最简单的互斥锁。使用lock(),unlock()函数来进行加锁解锁操作。还记得在C++11多线程(一)中我提到

2021-06-26 19:30:40 810

原创 C++11多线程(一) 创建线程

写在前面,本文是本人学习过程中类似于笔记的记录,如有疑问或错误可在评论区指出。请勿转载,谢谢观看。文章目录C++11多线程(一) 简单使用创建线程创建线程的其他方法一、函数对象二、匿名函数三、成员变量四、补充C++11多线程(一) 简单使用创建线程最简单的方法如下:#include<iostream>#include<thread>using namespace std;void f() {// cout << "正在执行 id:" <<

2021-06-26 11:00:51 1808 7

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除