![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
标准库日常
文章平均质量分 54
友善啊,朋友
这个作者很懒,什么都没留下…
展开
-
一个std::thread在成员函数执行耗时操作的例子
【代码】一个std::thread在成员函数执行耗时操作的例子。原创 2024-06-04 09:47:45 · 288 阅读 · 0 评论 -
std::atomic
不仅支持数值类型,还支持其他可赋值类型。int age;t1.join();t2.join();return 0;原创 2024-01-20 20:41:16 · 3052 阅读 · 0 评论 -
std::optional
类型是 C++17 新增的特性,它表示一个可能包含值的对象,也可以表示没有值。使用它就可以不需要使用一些特殊的值(如 NULL)或者异常来表示缺失值。使用,可以通过调用来表示没有值的情况。当包含值时,可以使用成员函数value ()来获取该值,而且可以使用成员函数来检查是否有值。此外,还可以使用运算符来获取值,类似于指针的解引用操作。当一个对象被按语境时,若对象含值则转换返回 true ,若对象不含值则返回 false。下面是一个使用。原创 2023-12-17 21:06:13 · 972 阅读 · 0 评论 -
std::any
可以储存任何和的类型的对象。类型是不可拷贝的,直接将此类对象赋给就会报错:要把赋给。原创 2023-11-13 00:10:47 · 1495 阅读 · 1 评论 -
标准库bind()函数
《C++ primer》10.3.4章节bind()函数的作用是绑定一个函数void debug(QString str){ qDebug()<<str;}auto newCall = std::bind(debug,std::placeholders::_1);newCall("哈哈");这里newCall绑定了debug(),调用newCall()就会调用debug(),std::placeholders::_1为传给debug()的第一个参数,_2..原创 2021-01-04 13:00:43 · 346 阅读 · 0 评论 -
标准库实用字符处理函数
一、实用字符判断函数以下函数用来判断字母:头文件:#include <cctype>std::isspace('0');//是否空白符(空格、水平制表符'\t'、垂直制表符'\v'、换行符'\n'、换页符'\f'、回车符'\r') std::isalpha('0');//是否字母(不包括下划线'_') std::isdigit('0');//是否十进制数字('0'~'9') std::isxdigit('0');//是否十六进制数字('0'~'9'、'a'~'f'、'A'~'F原创 2021-03-10 22:23:21 · 179 阅读 · 0 评论 -
std::thread基本用法
std::thread基本用法原创 2021-02-13 18:05:07 · 1607 阅读 · 0 评论 -
std::thread知识点
1、一个thread表示一个系统资源甚至专用硬件,因此thread可以移动但不能拷贝。2、std::thread::hardware_concurrency()获取硬件支持多少个任务同时执行。(不一定等于CPU核个数,具体依赖于机器结构,如6核12线程的处理器和6核8线程的处理器就不一样)3、当前线程id:std::this_thread::get_id()。4、如果一个线程的id是std::thread::id{},它可能:未被赋予任务 已结束 已被移动 已被detach()5、输原创 2021-03-11 22:47:03 · 547 阅读 · 0 评论 -
标准库时间
#include <chrono>#define debug qDebug()<<using namespace std::chrono;int main(int argc, char *argv[]){ auto t1 = std::chrono::steady_clock::now();//获取一个时间点 auto t2 = std::chrono::system_clock::now(); auto t3 = std::chrono::h...原创 2021-03-10 12:56:19 · 119 阅读 · 0 评论 -
c++标准库中的程序终止
1、std::exit() 由系统调用,表示结束进程。对于已构造的对象会调用析构函数(在一个析构函数中调用exit()会无限递归)。std::exit(0); 向系统返回0,表示程序正常结束。std::exit(0); 向系统返回1,表示程序非正常结束。2、std::abort() 程序异常结束,不会调用析构函数:#define debug qDebug()<<struct ceshi{ ~ceshi() { debug "ceshi 析构"原创 2021-03-01 23:06:56 · 2195 阅读 · 0 评论 -
c++标准库智能指针:weak_ptr
1、weak_ptr 的存在是为了协助 share_ptr 的,weak_ptr指向 share_ptr 管理的对象。2、weak_ptr 指向 share_ptr 管理的对象不会改变 share_ptr 的引用计数。3、weak_ptr 的 use_count() 返回的是指向的 share_ptr 的引用计数。4、weak_ptr 不具有普通指针的行为,没有重载 operator* 和 ->。5、expired() 获取指向的 share_ptr 的引用计数为是否为0。6.原创 2021-01-26 12:58:21 · 315 阅读 · 0 评论 -
c++标准库智能指针:unique_ptr
1、unique_ptr指向的对象只能被一个unique_ptr引用。unique_ptr<string> p3 (new string (auto));unique_ptr<string> p4;p4 = p3;//会报错2、unique_ptr被销毁时其指向的对象也被销毁。3、构造: std::unique_ptr<int> p(new int(666));4、unique_ptr不能拷贝和给其他unique_ptr赋值,因为要保证对原创 2021-01-25 22:49:59 · 387 阅读 · 1 评论 -
c++标准库智能指针:shared_ptr
《c++ primer》12.1.1章节1、智能指针是为了更加安全(防止内存还被引用着就被释放)和方便(不必自己手动释放内存)地使用动态内存(静态内存和栈内存中的对象由编译器创建和销毁,动态内存由程序创建和销毁)而存在。2、shared_ptr的特点是允许多个指针指向同一个对象。3、智能指针也是模板,因此要指定类型:shared_ptr<int> p;4、智能指针默认值是nullptr。...原创 2021-01-24 13:59:17 · 1256 阅读 · 0 评论