C11
文章平均质量分 59
hei
程序员小吕666
程序员,永远学习
展开
-
std::unique_lock 和 std::lock_guard
是 C++ 标准库中用于管理互斥锁的类模板,它们都提供了简化多线程编程中互斥访问的机制,但在功能和灵活性方面存在一些区别。是一个更灵活和功能更强大的互斥锁管理类。它提供了更多的操作,如延迟加锁、手动释放锁、尝试加锁和超时加锁等。对象一旦被创建,就会锁定互斥锁,一旦对象离开作用域,就会自动释放互斥锁,确保在任何情况下都不会忘记释放锁。是一个轻量级的互斥锁管理类,它通过构造函数获取锁,析构函数释放锁。具有更大的开销,因为它需要使用动态分配的资源来管理锁的状态。更适合简单的锁定范围,并且不能显式地释放锁。原创 2023-05-24 20:52:41 · 1005 阅读 · 0 评论 -
std::vector的原理之一begin()和end()
@TOC前言同事遇见个bug,在一个容器中使用std::find寻找指定元素,找到后将一个标志位置位。但是log数据找到了指定元素,但实际容器中却不含有此元素。伪代码void findElement(const vector<int>& vec, int key){ auto it = find(vec.begin(), vec.end(), key); if (it != vec.end()) { // setFlag(true);原创 2021-12-22 11:13:31 · 1749 阅读 · 0 评论 -
explicit 与变量初始化时的隐式转换
explicit 与隐式转换隐式转换代码说事explicit隐式转换类变量刚被定义时使用 = 一个非同类的其它类型变量;其实是调用对应的构造函数。进行初始化,这一过程是编译器识别的。 = 一个同类的变量则是调拷贝构造(此篇文章不讲)代码说事#include <iostream>using namespace std;class Test{public: Test() { cout << "Test()" << endl;原创 2021-12-14 16:58:07 · 897 阅读 · 0 评论 -
c++11新特性遇见一个记一个
c++11新特性遇见一个记一个std::functionstd::movestd::functionstd::function是函数模板类(是一个类);std::bind是函数模板(是一个函数);#include <memory>#include <iostream>#include <functional>using namespace std;void hello(){ cout << "hello" << endl;原创 2021-10-19 20:13:31 · 458 阅读 · 0 评论