八股文 八股deque std

关于 std::vector 容器初始化特殊长度导致的 Segmentation Fault 错误

当我们设置 std::vector 的长度时, 常这样书写: ```cpp std::vector vec(length); ``` 这样做一般不会出问题, 编译可正常通过, 然而当把 length 设置为 0 时, 执行有报错: ```bash Segmentation fault ``` 程序发 ......
Segmentation 容器 长度 错误 vector

一天吃透Redis面试八股文

**目录**: - [Redis是什么?](https://topjavaer.cn/redis/redis.html#redis%E6%98%AF%E4%BB%80%E4%B9%88) - [Redis优缺点?](https://topjavaer.cn/redis/redis.html#redi ......
八股文 八股 Redis

c++ std::to_string实现原理

写这篇的起因是看到 MSVC STL 的一个[issue](https://github.com/microsoft/STL/issues/3857),里面提到```to_string```的实现,正常人的思维是直接除10拿到每位, 其实有个更高效的查表法 # 字符串转数字 除100拿到两位,并查表 ......
to_string 原理 string std to

std::condition_variable 练习(多线程任务序列化)

#include <functional> #include <map> #include <random> #include <chrono> #include <iostream> #include <format> #include <cmath> #include <thread> #inc ......

std::condition_variable 练习(多线程任务序列化)

#include <functional> #include <map> #include <random> #include <chrono> #include <iostream> #include <format> #include <cmath> #include <thread> #inc ......

C++ 字符串拼接技巧(stringstream、字符串迭代器、字符串的加法运算符、std::accumulate、boost库join)

在C++中,经常需要将多个字符串拼接成一个大字符串。这个过程很容易出错,但有一些技巧可以帮助我们轻松地实现这个目标。本文将介绍一些C++中join字符串的技巧。 一、使用stringstream stringstream是一个流。使用它可以将多个字符串连接起来,然后将它们转换为一个字符串。可以使用' ......

C++面试八股文:如何避免死锁?

# C++面试八股文:如何避免死锁? 某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:什么是锁?有什么作用? 二师兄:在C++中,锁(Lock)是一种同步工具,用于保护共享资源,防止多个线程同时访问,从而避免数据竞争和不一致。 面试官:有哪些锁? 二师兄:从种类上分,可以分为普 ......
八股文 八股

C++面试八股文:如何实现一个strncpy函数?

# C++面试八股文:如何实现一个strncpy函数? 某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: > 面试官:strcpy函数使用过吧? > 二师兄:用过。 > 面试官:这个函数有什么作用? > 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。 > 面试官:str ......
八股文 八股 函数 strncpy

C++/嵌入式八股学习-day3

[toc] # C++/嵌入式八股学习-day3 ## C/C++ ### 使用指针传递大容量参数 在C语言中,当函数参数较大时,为了避免传递复制数据导致内存开销较大,可以使用指针来传递参数。下面是使用指针传递大容量参数的示例: ``` #include #include void func(int ......
八股 嵌入式 day3 day

函数指针、std::function、std::bind

# 函数指针、std::function、std::bind ## 函数指针: - C++语法中可以直接将函数名作为指针, ```cpp void fun(int a, int b); ``` 在这个函数声明中,函数指针即为`fun`,传入要被调用的地方时只需要传入`fun`就可以。 但是这个函数指 ......
指针 函数 std function bind

C++/嵌入式八股学习-day2

# C++/嵌入式八股学习-day2 ## C/C++ ### 手写atoi函数 ### C++有哪几种构造函数 ## ARM ### ARM CPU上的地址转换涉及哪三个概念? ## 应用编程和网络编程 ### 请问就绪状态的进程在等待什么? 就绪状态的进程并不是在等待某个特定的事件或资源,而是已 ......
八股 嵌入式 day2 day

C++/嵌入式八股学习-day1

[toc] ## C/C++ ### 内联函数和宏定义的区别 1. 内联函数是C++语言提供的一种特性,可以在函数定义时使用inline关键字进行声明。而宏定义是C和C++语言都支持的一种预处理指令。 2. 内联函数是由编译器实现的,因此内联函数的调用是有类型检查的。而宏定义是由预处理器实现的,宏定 ......
八股 嵌入式 day1 day

c++ std::hash<std::string> 字符串哈希函数

## msvc 采用了[FNV-1a](http://www.isthe.com/chongo/tech/comp/fnv/index.html#FNV-param)的哈希算法 ``` // 众所周知 std::string 就是一个 basic_string template struct has ......
字符串 函数 std 字符 string

【八股文 03】extern、static、this、inline、volatile 关键字

# 0 概览 以下为概览,如果看到问题都能基本想到答案,则不需要看正文中详细的内容 - extern - 作用 - static - 作用 - 修饰变量 - 局部变量 - 全局变量 - 类成员变量 - 修饰函数 - 普通函数 - 类成员函数 - this 指针 - this 指针的类型为?在常函数里 ......
八股文 八股 volatile 关键字 关键

双通道MIL-STD-1553B总线通讯模块

* 双通道MIL-STD-1553B总线通讯模块 * 32bi,33 MHz CPCI/PCI/总线* 每个通道为A、B双冗余总线* 单功能可设置BC/RT/BM一种工作模式* 数据传输率: 4Mbps* 支持32位时标, 时标精度0.25微秒* 软件可设詈应答超时: 0-32767µs* 大容量的 ......
总线 模块 通道 MIL-STD 通讯

std::shared_ptr 线程安全方面的思考

一直惦记着 std::shared_ptr 线程安全的问题,看了些文章后,又怕过段时间忘记了,遂记录下来 std::shared_ptr 的线程安全问题主要有以下两种: 引用计数的加减操作是否线程安全 std::shared_ptr 修改指向时是否线程安全 第一个问题的答案: 是线程安全的,因为是原 ......
线程 shared_ptr 方面 shared std

C++面试八股文:如何实现一个strncpy函数?

# C++面试八股文:如何实现一个strncpy函数? 某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: > 面试官:`strcpy`函数使用过吧? > 二师兄:用过。 > 面试官:这个函数有什么作用? > 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。 > 面试官:` ......
八股文 八股 函数 strncpy

30.STL中的deque的实现

# 30.STL中的deque的实现 ## 1.deque简介 双端队列deque,与vector的最大差异在于: 1.deque运行常数时间对头端或尾端进行元素的插入和删除操作 2.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随时可以增加一块新的内存空间并拼接起来 虽然deq ......
deque STL 30

c++11 std::condition_variable

# std::condition_variable * 需要配合unique_lock使用,`wait(unique_lock&)` * notify_one()调用时,只有随机一个wait()线程会得到通知 * notify_all(),所有wait()线程会被通知并得到执行 * wait()调用 ......
condition_variable condition variable std 11

std::bitset 的常用函数

菜。 `flip`:反转。 `set()`:全部置 `1`。 `set(i)`:第 $i$ 位置 `1`。 `set(i, 0)`:第 $i$ 位置 `0`。 `reset`:置 `0`。 `count`:求 `1` 的个数。 `test`:返回第 $i$ 位是 `0/1`。 `any`:是否有 ` ......
函数 常用 bitset std

c++11 std::unique_lock

# std::unique_lock * 用法类似lock_guard,离开作用域后自动unlock * 定义的时候可以不需要mutex初始化,可以为空 * 可以手动调用lock(),unlock() ```cpp // unique_lock example #include // std::co ......
unique_lock unique lock std 11

【八股文 00】C++ 八股文合集

# 1 前言 ## 1.1 八股文是什么 八股文本来是明清科举考试的一种文体,绝对不允许自由发挥,而句子的长短、字的繁简、声调的高低等也都要相对成文,字数也有限制。 那么总结一下,**八股文的特点是:不允许自由发挥,题目,内容,格式都被严格限制,必须遵守相应的定式** 那么**计算机八股文就比较好理 ......
八股文 八股

【八股文 02】C++ 进程内存布局及其相关知识

# 1 引言 **本文环境为 Linux 操作系统(x86) + C++**。 **目的是了解进程内存布局**,但是在了解的过程中发现需要前置一些知识,因此内容概览如下所示: - 1 C/C++程序从源代码到可执行程序的构建过程 - 1.1 预处理,也叫预编译 - 1.2 编译 - 1.3 汇编 - ......
八股文 八股 布局 进程 内存

让nlohmann json支持std::wstring和嵌套结构的序列化与反序列化

nlohmann json是一个star很高的C++ json解析库。 要让nlohmann json支持某个类型T,只要给这个类型T实现一个偏特化的struct adl_serializer<T>即可。adl_serializer是这个库里面针对泛型T预定义的适配器。 而嵌套结构,本身就支持的。使 ......
序列 nlohmann wstring 结构 json

std::move和std::forward

move和forward不进行任何操作,他们只负责类型转换。 move(x)等价于 static_cast<remove_reference_t<T>&&>(x)。因为T首先被剥夺引用,因此这里不会产生引用折叠,必定返回右值。 forward(x)等价于 static_cast<T&&> (x)。因 ......
std forward move

C++面试八股文:技术勘误

# C++面试八股文:技术勘误 在《C++面试八股文:C++中,设计一个类要注意哪些东西?》[https://www.cnblogs.com/bujidao1128/p/17481540.html]()一文中, ``` #include struct Foo{}; struct Goo { void ......
八股文 八股 技术

MIL-STD-1553B总线通信模块(1553B板卡)

MIL-STD-1553B总线通信模块(1553B板卡)产品具有以下特点: 1.产品覆盖多种接口CPCI/PXI/PCI/PC104/PC104+/USB等,满足用户不同平台的使用要求; 2.自主知识产权IP核,通信速率支持1M/4M ......
板卡 1553 总线 模块 MIL-STD

std::queue 中遇到释放内存错误的问题

项目上有个需求要用到 std::queue 顺序处理消息事件 简单的示例如下: struct MyEvent { MyEvent() { event_ = CreateEvent(nullptr, 0, 0, 0); } ~MyEvent() { std::cout << "MyEvent deco ......
内存 错误 问题 queue std

C++面试八股文:什么是空指针/野指针/悬垂指针?

# C++面试八股文:什么是空指针/野指针/悬垂指针? 某日二师兄参加XXX科技公司的C++工程师开发岗位第30面: > 面试官:什么是空指针? > 二师兄:一般我们将等于`0`/`NULL`/`nullptr`的指针称为空指针。空指针不能被解引用,但是可以对空指针取地址。 ``` int* p = ......
指针 八股文 八股

一文吃透SpringMVC面试八股文

> 内容摘自我的学习网站:topjavaer.cn ## 说说你对 SpringMVC 的理解 SpringMVC是一种基于 Java 的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于Spring框架的一个模块。 它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接 ......
八股文 八股 SpringMVC