0%

std黑魔法

说明

🧚std黑魔法记录,遇到一个记一个

std::strlen

  • 🧙🏻用法:同c中的strlen函数

std::lock_gurad

  • 🧙🏻用法:有点类似python中的with lock

  • 🧪原理:在构造函数中需要传入一个锁,在构造时,自动加锁,在析构时自动解锁

  • 🌰示例:

    1
    2
    3
    4
    5
    void sync_func() {
    std::mutex lock;
    std::lock_guard<std::mutex> guard(lock);
    //do something
    }

std::memcmp

  • 🧙🏻用法:比较两块内存中的数据是否是一致的

std::allocate_shared

  • 🧙🏻用法:在std::make_shared的功能基础上,使用自定义的内存Allocator,Allocator需要实现allocate和deallocate这两个方法。

std::hash

  • 🧙🏻用法:如果某种数据类型需要作为std无序容器(例如unordered_map、unordered_set)的key的话,则要实现std::hash这个模版对应类型的具体化

std::numeric_limits

  • 🧙🏻用法:获取某种类型的最大最小值

  • 🌰示例:

    1
    std::numeric_limits<int>::max();

std::this_thread::yield

  • 🧙🏻用法:把当前线程占据的时间片让渡出去,并且不参加让出时间片的竞争

  • 🌰示例:

    1
    std::this_thred::yield();