std

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

让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

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++ std::thread::joinable

# std::thread::joinable * 默认构造的thread对象 not joinable * join/detach之后 not joinable * 不能反复join/detach,会崩 * 当前线程会阻塞在join()调用处 * detach()不会阻塞当前线程,但是主进程结束后 ......
joinable thread std

std::optional 内存布局

对于`std::optional`对应的内存布局为 ```c++ struct optional_mem { int _M_payload; bool _M_engaged; }; ``` 可以通过[godbolt](https://godbolt.org "godbolt")通过pahole工具查 ......
布局 optional 内存 std

std::bind 详解

# bind bind 是C++ 的一个函数, 用来绑定其他函数,用来改造。 ## 1. 普通函数的bind 普通函数可以被绑定,传参。 ```cpp int add(int x, int y){ cout using std::bind; int main(){ auto f = bind(&ad ......
bind std

std::ofstream 写本地音频

最近线上 PK 偶然出现双方主播互相听不见声音的情况,在日志不能明确体现问题时,就需要抓下主播本地的音频和远端的音频来确定数据是在哪消失的 所以我们用到一个比较简单的流写出的标准库类:std::ofstream 通过 std::ofstream 类,可以创建一个用于写入文件的输出流对象,可以将数据写 ......
ofstream 音频 std

并行版的 std::accumulate

```C++ #include #include #include #include template struct accumulate_block { void operator()(Iterator first, Iterator last, T& result) { result = std ......
accumulate std

std::bitset

# `std::bitset` ## 前言 感觉 ZGY 讲得不是很清楚(例题讲得有点少,而且感觉有一点乱),所以来写了这一篇文章。但是最好结合着[他的文章](https://qoj.fzoi.top/post/5276)一起学习。 ~~可能有错别字 错公式 错表达 大佬们请请多包涵 Orz。~~ ......
bitset std

gcc5 std::string的变化

自从GCC-5.1开始,std::string引入了遵从C++11标准的新实现,默认使用SSO(small string optimization)特性,禁用了写时复制(COW)引用计数机制,这也带来了与旧版本std::string的ABI兼容性问题。 参考: http://www.pandadem ......
string gcc5 gcc std

C++面试八股文:知道std::unordered_set/std::unordered_map吗?

# C++面试八股文:知道std::unordered_set/std::unordered_map吗? 某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: > 面试官:知道`std::unordered_set/std::unordered_map`吗? > 二师兄:知道。两者都是C++ ......

动态数组和C++ std::vector详解

目录 1. std::vector2. vector的用法 2.1 vector的定义和声明 2.2 成员函数 2.2.1 基本函数 operator= assign get_allocator 2.2.2 元素访问 at operator[] front back data 2.2.3 迭代器 b ......
数组 动态 vector std

C++面试八股文:用过std::set/std::map吗?

# C++面试八股文:用过std::set/std::map吗? 某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: > 面试官:用过`std::set/std::map`吗? > 二师兄:用过。 > 面试官:能介绍一下二者吗? > 二师兄:`std::set`是一个有序的集合,其中的元素 ......
八股文 八股 std set map

如何使用C++11 STD::THREAD设置堆栈大小?

本教程将介绍如何使用C++11 std::thread设置线程的堆栈大小。C++11 std::thread是一种轻量级的多线程实现,它的灵活性使得它成为一个流行的选择。但是,在某些情况下,您可能需要设置线程的堆栈大小来满足您的需求。 在开始本教程之前,我们假设您已经熟悉了C++11 std::th ......
堆栈 大小 THREAD STD 11

离奇的std::map、std::set崩溃

离奇的std::map、std::set崩溃 现象描述定位之路1、和windows调用比较,没发现任何问题2、修改cmakelists.txt,发现也没有什么可以改的,能改的怎么改结果都一样3、最笨的办法之一用上,写一段这样的代码:4、面向互联网大法编程,百度、微软必应(不翻墙,不能狗狗),发现一个 ......
std map set

C++ std::chrono 计时器的使用

使用标准库 #include <chrono> int main() { auto stampBeg = std::chrono::steady_clock::now(); // do someting Sleep(2400); auto stampEnd = std::chrono::steady ......
计时器 chrono std

std::future、std::promise、std::packaged_task、std::async

# std::promise `std::promise`:用于获取线程中变量的结果,如下: ``` #include #include #include void printMessage(std::promise&& prms, std::string message) { std::this_ ......
std packaged_task packaged promise future

​数组和C++ std::array详解

目录: 1. 数组和std::array2. array的用法 2.1 成员函数 2.1.1 隐式定义的成员函数 2.1.2 元素访问 at operator[] front back data 2.2.3 迭代器 begin、end和cbegin、cend rbegin、rend和crbegin、 ......
数组 array std

性能优化利器 std::move/forward 实现原理

utility 包含了 STL 经常使用的几个模板函数的定义:std::move() 用于得到一个右值引用;std::swap() 使用移动语义,交换两个对象;std::forward() 支持完美转发。本文分析了上述三个模板函数的实现原理。 本文内容: 1、std::move 2、std::swa ......
利器 原理 性能 forward move

C++面试八股文:std::deque用过吗?

某日二师兄参加XXX科技公司的C++工程师开发岗位第26面: > 面试官:`deque`用过吗? > 二师兄:说实话,很少用,基本没用过。 > 面试官:为什么? > 二师兄:因为使用它的场景很少,大部分需要性能、且需要自动扩容的时候使用`vector`,需要随机插入和删除的时候可以使用`list`。 ......
八股文 八股 deque std

C++面试八股文:std::array如何实现编译器排序?

# C++面试八股文:std::array如何实现编译器排序? 某日二师兄参加XXX科技公司的C++工程师开发岗位第25面: > 面试官:`array`熟悉吗? > 二师兄:你说的是原生数组还是`std::array`? > 面试官:你觉得两者有什么区别? > 二师兄:区别不是很大,原生数组(非动态 ......
八股文 八股 编译器 array std

C++面试八股文:std::vector和std::list,如何选择?

# C++面试八股文:std::vector和std::list,如何选择? 某日二师兄参加XXX科技公司的C++工程师开发岗位第24面: > 面试官:`list`用过吗? > 二师兄:嗯,用过。 > 面试官:请讲一下`list`的实现原理。 > 二师兄:`std::list`被称为双向链表,和C中 ......
八股文 八股 std vector list

C++面试八股文:std::vector了解吗?

某日二师兄参加XXX科技公司的C++工程师开发岗位第23面: > 面试官:`vector`了解吗? > 二师兄:嗯,用过。 > 面试官:那你知道`vector`底层是如何实现的吗? > 二师兄:`vector`底层使用动态数组来存储元素对象,同时使用`size`和`capacity`记录当前元素的数 ......
八股文 八股 vector std

STD-study-暑假-大一下-PTA-day1

L1-001 #include <iostream> using namespace std; int main() { cout<<"Hello World!"<<endl; return 0; } 毫无难度 L1-002 打印沙漏 #include <stdio.h> #include <mat ......
STD-study PTA-day study STD PTA

c++ std::execution::par in for_each and write files

#include <algorithm> #include <chrono> #include <cstdint> #include <execution> #include <fstream> #include <future> #include <iomanip> #include <iostr ......
execution for_each files write each

C++面试八股文:知道std::unordered_set/std::unordered_map吗?

某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: > 面试官:知道`std::unordered_set/std::unordered_map`吗? > > 二师兄:知道。两者都是C++11引入的新容器,和`std::set`和`std::map`功能类似,`key`唯一,`unorde ......

std::quoted试用学习

std::quoted 是干啥用的,有啥作用?看是c++14和17中加入的。 quoted 这个单词似乎在计算机里面就有着特殊的意思,可惜没记住。英文原版资料看的少。 在cppreference网站中的示例如下:(https://en.cppreference.com/w/cpp/io/manip/ ......
quoted std