八股文 八股deque std

关于std::vector<bool>

一、引子 std::vector<bool> 经常应用在leetcode刷题中。 但是effective stl 不建议使用std::vector<bool>,原因是: 严格意义上讲,vector<bool> 并不是一个 STL 容器; vector<bool> 底层存储的并不是 bool 类型值。 ......
vector bool std

Programming Deque ADT

ProgrammingDeque ADTDebugging ArrayDequeTipsImplementing LinkedDequeSentinel NodesInvariantsSubmissionInfo See an introductory video for this assignme ......
Programming Deque ADT

【segmentation fault】std::string析构崩溃

今天写了一个小工具,运行时发生segmentation fault,现象如下 第一步:review崩溃附近代码,产生疑惑,崩溃的地方居然是变量定义的地方 std::string accessToken; 崩溃在这个地方,我直接懵了,只是变量定义为啥会报错,没有任何思路,打算单步调试。 第二步:单步调 ......
segmentation string fault std

c++ std::string_view

std::string_view系C++17标准发布后新增的内容。 C++17中我们可以使用std::string_view来获取一个字符串的视图,字符串视图并不真正的创建或者拷贝字符串,而只是拥有一个字符串的查看功能。std::string_view比std::string的性能要高很多,因为每个 ......
string_view string view std

c++ std::variant

std::variant 是c++17 引入的一个类型,其作用类似于C语言中的Union,但是比Union 的功能强大的多。C语言中一个联合体Union 可以储存多种类型数据,但缺点有很多。比如:1 没有可用的方法来判断Union中真实储存的类型,获取值时也是内存拷贝的结果,可能会存在问题。这就只能 ......
variant std

std::minmax_element的简单用法

获取一个数组中的最大值和最小值,通过匿名函数声明自定义比较策略。 #include <iostream> #include <vector> #include <algorithm> #include <string> #define BUFSIZE 6 using namespace std; t ......
minmax_element element minmax std

c++ std::package_task,task.get_future()

#include <iostream> #include <future> #include <thread> int countdown(int from,int to) { for(int i=from;i!=to;--i) { std::cout<<i<<std::endl; std::thi ......
task package_task get_future package future

C++17:新特性之std::optional

考虑一个问题,C++如何实现返回多个值?如何标记其中一个bool返回值用于记录函数运行状态? 我们可以通过pair或tuple实现,有以下代码: #include <iostream> #include <string> using namespace std; struct ss { string ......
optional 特性 std 17

这可能是最全面的TCP面试八股文了

计算机网络基础,考验一个程序员的基本功,也能更快的筛选出更优秀的人才。 说说TCP的三次握手 假设发送端为客户端,接收端为服务端。开始时客户端和服务端的状态都是CLOSED。 第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN=1 ......
八股文 八股 面的 TCP

C++11新特性之std::function和bind绑定器

在C++中,存在可调用对象这一个概念,可调用对象有以下几种定义: (1).是一个函数指针 (2).是一个具有operator()成员函数的类对象(仿函数) (3).是一个可被转换为函数指针的类对象 (4).是一个类成员(函数指针) 一、可调用对象包装器 std::function std::func ......
function 特性 bind std 11

cpp get exact time and precision reach nanoseconds via std::chrono::high_resolution_clock

#include <chrono> #include <ctime> #include <iomapip> #include <iostream> #include <sstream> std::string get_time_now() { std::chrono::time_point<std: ......

八股文整理

项目: 1、多路复用技术? select、poll、epoll 2、有限状态机? 一种理论模型,主状态机解析HTTP报文请求行、请求头、请求体,从状态机读取一行。 3、什么是IO多路复用,和多线程模式对比 一个线程监听多个socket,处理多个请求。 多线程模式是由多个线程来进行处理事务,每新来一个 ......
八股文 八股

三天吃透MySQL面试八股文

什么是MySQL MySQL是一个关系型数据库,它采用表的形式来存储数据。你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列)。行代表每一行数据,列代表该行中的每个值。列上的值是有数据类型的,比如:整数、字符串、日期等等。 数据库的三大范式 第一范式1NF 确保数据库表字段的原 ......
八股文 八股 MySQL

Java面试必备八股文一、Java基础篇

1.1)Java有哪几种数据类型 基本数据类型:byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节) boolean(1字节) 引用数据类型:String 类 接口 抽象类 枚举 数组 1.2)JVM、JRE ......
八股文 八股 Java 基础

Java面试必备八股文一、Java基础篇

1.1)Java有哪几种数据类型 基本数据类型:byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节) boolean(1字节) 引用数据类型:String 类 接口 抽象类 枚举 数组 1.2)JVM、JRE ......
八股文 八股 Java 基础

std::forward完美转发

std::forward被称为完美转发,它的作用是保持原来的值属性不变。 啥意思呢?通俗的讲就是,如果原来的值是左值,经std::forward处理后该值还是左值;如果原来的值是右值,经std::forward处理后它还是右值。 简单样例如下: #include <iostream> templat ......
forward std

c++ 多线程编程std::thread, std::shared_mutex, std::unique_lock

在C++11新标准中,可以简单通过使用thread库,来管理多线程,使用时需要#include <thread>头文件。 简单用例如下: 1 std::thread(Simple_func); 2 std::thread t(Simple_func); 3 t.detach(); 第一行是直接启动一 ......
std 线程 shared_mutex unique_lock shared

C++11 std::function及std::bind用法

类似于c语言中的函数指针,C++11中,提供了一个通用的描述方法,就是std::function。 std::function可以hold住任何可以通过“()”来调用的对象,包括: 普通函数 成员函数 lambda std::bind std::function的语法格式为: template <c ......
std function bind 11

C++标准库中的std::nth_leement

std中的nth_element 默认求的是数组中第 n 小的元素 可以通过参数传入,求第 n 大的元素 示例代码 #include <algorithm> #include <iostream> #include <vector> using namespace std; int main(int ......
nth_leement leement 标准 std nth

c++11 std::thread 线程实例在退出后管理线程调用join()后再新建线程将可能会产生相同std::thread::id的实例

[03-28 16:52:54.372] [info] [vthread.cpp:92 operator()()] create new thread,id:4,tid:7f5cbb7fd640,inroduce:test vthread 003[03-28 16:52:54.372] [info] ......
线程 实例 thread std join

三天吃透MySQL面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
八股文 八股 MySQL

C++17:实现动态类型std::any

1、通过void*或继承实现动态类型 struct A { }; struct B { }; struct C :A { }; struct D :A { }; int main() { //万能指针void* void* p = new A(); p = new B(); p = new vect ......
类型 动态 std any 17

C++11:实现std::tuple

1、实现基础功能 #include <iostream> #include <string> using namespace std; template<typename... Ty> struct Tuple; template<> struct Tuple<> {}; /* template<t ......
tuple std 11

三天吃透Spring面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址 Spring的优点 通过控制反转 ......
八股文 八股 Spring

在大型项目中为什么不能用using namespace std;

在大型项目中,使用using namespace std;会存在以下几个问题: 命名冲突:使用using namespace std;会将所有std命名空间下的名称都引入当前命名空间,可能会与当前项目中的其他标识符冲突,导致编译错误。 可读性差:如果在项目中使用大量的命名空间,代码可能会变得难以阅读 ......
namespace 项目 using std

C++中std::function常见用法

C++标准库中的std::function是一个通用的函数封装,可以用来存储、复制、调用任何可调用对象(函数、函数指针、成员函数指针、lambda表达式等)。以下是std::function的一些常见用法: 定义std::function类型std::function类型的定义类似于函数指针类型,例 ......
function 常见 std

Java八股文之基础篇

一、Java基础篇 1.接口和抽象类的区别 (1)抽象类可以有构造方法,而接口没有 (2)抽象类可以有抽象方法和具体方法,接口只能有抽象方法 (3)抽象类的成员4种权限修饰符都可以修饰,接口只能用private 2.重载和重写的区别 重载发生在同一个类中,方法名相同、参数列表、返回类型、权限修饰符可 ......
八股文 八股 基础 Java

三天吃透MongoDB面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
八股文 八股 MongoDB

std::vector::clear()方法真的会清除元素吗?

测试 编译这样一段代码 int main() { std::vector<size_t> vec{1,2,3}; std::cout << vec.data() << std::endl; std::cout << *vec.data() << std::endl; std::cout << vec ......
元素 方法 vector clear std

原生数组、std::array、std::vector访问性能对比

先上结论: std::vector的at()操作最慢。其时间约达其他访问方式的2~4倍。原生数组和std::vector的[]访问较快。std::array的访问速度介于中间,约是原生的2倍。 具体测试方法: 主要测试读取和赋值访问,结果中: t1 - std::array的at()时间 t2 - ......
数组 std 性能 vector array