E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
[C++11]
【设计模式】C++对单例模式实现的总结(
C++11
超简化版,必看精髓)
单例模式清晰的视频解说:https://www.bilibili.com/video/BV1Gz4y1d7RJ?from=search&seid=352768139051489960问题的提出:一个国家只能有一个主席,一个学校只能有一个校长…单例模式:(实现原理)原理:类的构造器被私有化,并且在类里面只实例化了一个对象,如果你需要用到该类对象,你只能通过getInstance()方法获得类自己生成
bdview
·
2023-11-28 10:26
c++
设计模式
java
spring
android
C++11
线程间同步方式
1.多线程的并发问题线程间为什么需要同步?直接来看一个例子:inta=0;voidfoo(){for(inti=0;ilck(_mutex);while(a%3!=0)cond.wait(lck);a++;printf("%d\n",a%3);cond.notify_all();lck.unlock();}}voidsecond(){while(true){unique_locklck(_mute
东东儿
·
2023-11-28 10:53
C++学习
C++11
的条件变量
条件变量是
C++11
提供的另外一种用于等待的同步机制,它能阻塞一个或多个线程,直到收到另外一个线程发出的通知或者超时,才会唤醒当前阻塞的线程。条件变量需要和互斥量配合起来用。
铲灰
·
2023-11-28 10:23
深入应用C++11
c++
开发语言
C++11
互斥量mutex使用详解
C++11
互斥量mutex使用详解一、前言二、独占互斥量std::mutex2.1、std::mutex的成员函数2.2、使用示例三、lock_guard和unique_lock的使用和区别3.1、unique_lock
Lion Long
·
2023-11-28 10:49
C/C++
c++
算法
mutex
互斥量
c++11
C++11
多线程之互斥量(mutex)与条件变量(condition_variable)
互斥量(std::mutex)是多线程间同时访问某一共享变量时,保证变量可被安全访问的手段。引用cppreference的介绍:1Themutexclassisasynchronizationprimitivethatcanbeusedtoprotectshareddatafrombeingsimultaneouslyaccessedbymultiplethreads.锁住的代码少,这个粒度叫细,
Alan Lan
·
2023-11-28 10:19
C++
多线程
C++11
的互斥量
C++11
中提供了如下4种语义的互斥量(mutex):1、std::mutex:独占的互斥量,不能递归使用。2、std::mutex_mutex:带超时的独占互斥量,不能递归使用。
铲灰
·
2023-11-28 10:48
深入应用C++11
c++
开发语言
C++11
线程以及线程同步
C++11
中提供的线程类std::thread,基于此类创建一个新的线程相对简单,只需要提供线程函数和线程对象即可一.命名空间this_threadC++11添加一个关于线程的命名空间std::this_pthread
lyingcloud
·
2023-11-28 10:47
c++
算法
开发语言
C++11
新特性 变参模板、完美转发和emplace
#include#include#include#include#includeusingnamespacestd;classstudent{public:student(){coutage=age;//strncpy_s(this->name,name,64);coutage=s.age;//strncpy_s(this->name,s.name,64);coutvectStu;//插入学生到容
luciferau
·
2023-11-28 08:24
c++
C++多线程学习(文章链接汇总)
参考引用C++11141720多线程从原理到线程池实战代码运行环境:VisualStudio2019C++多线程学习(一):
C++11
多线程快速入门C++多线程学习(二):多线程通信和锁C++多线程学习
Robot_Yue
·
2023-11-28 08:33
C++多线程学习
c++
学习
锁
多线程
c++11
实现读写锁
Note:C++17里已经引进了读写锁std::shared_mutex,其lock()即以写方式加锁,其lock_shared()即以读方式加锁。https://en.cppreference.com/w/cpp/thread/shared_mutex实现一个读写锁类,可以有两种方式获取锁,读方式,写方式。允许多个"读线程"同时进入临界区,但是同一时刻只允许一个"写线程"进入临界区。当有写线程进
First Snowflakes
·
2023-11-28 05:59
c++
stl
C++
c++ 11读写锁
参考:C++中的RAII_一蓑烟雨任平生也无风雨也无晴-CSDN博客
C++11
实现模板化(通用化)RAII机制_10km的专栏-CSDN博客_c++11raii无锁编程:
c++11
基于atomic实现共享读写锁
搁浅的渔
·
2023-11-28 05:59
c++
c++
git
html5
C++11
实现一个读写自旋锁-1
本文介绍一种使用自旋方式实现读写锁的方案。方案实现起来比较简单,但因为使用的是自旋锁机制,当获取不到锁时,线程就处于忙等待状态,CPU一直在自旋,并不会使线程进入阻塞状态。因此,它适用于加锁时间不长并且临界区不会阻塞的应用场景,比如没有调用互斥锁、IO操作、动态内存分配等。否则,可以选择使用带有阻塞功能的互斥锁,比如std::mutex、std::shared_mutex等。基本原理是使用一个原子
柴郡猫乐园
·
2023-11-28 05:29
自旋锁
c++
开发语言
多线程
c++11
实现写优先的读写锁
先直接贴出代码:#ifndef__WRITE_FIRST_RW_LOCK_H#define__WRITE_FIRST_RW_LOCK_H#include#includeclassWfirstRWLock{public:WfirstRWLock()=default;~WfirstRWLock()=default;public:voidlock_read(){std::unique_lockulk(c
游学四方
·
2023-11-28 05:27
开源软件使用
多线程
c++
并发编程
C++11
读写锁的实现
参考的源码读写锁,一直都有听,也大概知道点原理,一直没有探究内部是如何实现的,正好今天完成了几项大作业,研究一下读写锁实现的原理。读写锁的原理就是,可以多次读,但是写只能一次一次的写入,我参考的源码博主控制了写优先,并且读的优先级没我写的这么高。我自己在修改了他的源码,实现的是读优先,并且优先级很高,如果存在大量的读操作,可能会出现写操作线程饥饿的现象。如果在具体的场景中写操作也多,可以修改wai
dxgzg
·
2023-11-28 05:27
C++
C++并发
c++
多线程
并发编程
C++ 读写锁之写优先
VS2005之后可以直接使用SRWLOCKlinux下使用pthread_rwlock_t本程序基于
C++11
实现读写锁,并且写优先。为什么需要写优先?防止大量读导致写一直不可用。
CAir2
·
2023-11-28 05:57
C++
随笔
c++
算法
开发语言
读写锁
rwlock
字符串与数字之间的转换
C++11
提供了若干to_string(Tvalue)函数来将T类型的数字值转换为字符串形式。
羊羊不懒
·
2023-11-28 03:57
2020蓝桥杯
【C++】多线程编程一(初识并发和多线程)
目录一、并发和并行的概念1.并发2.并行3.并发和并行的区别二、并发的途径多进程并发多线程并发三、
C++11
相关多线程编程的头文件一、并发和并行的概念1.并发并发:指同一时刻只能有一条指令执行,但是多个进程指令被快速地轮换执行
Jacky_Feng
·
2023-11-27 20:04
多线程编程
开发语言
c++
类和对象(下)
目录1.初始化列表1.1构造函数体内的赋值1.2初始化列表1.对象整体定义和成员变量定义的区别2.初始化列表的写法1.3和
C++11
的联系1.4针对初始化列表的建议2.静态成员2.1静态成员变量1.概念
C++卢瑟
·
2023-11-27 19:07
C++
初始化列表
静态成员
友元
内部类
隐式类型转换
匿名对象
C++ 在函数中定义函数
但是
C++11
发布后,在函数内简便地定义“函数”(其实是『函数对象』)成为了可能。Part.I实例下面是一个简单的样例,其中在main函数内部定义了两个『函数对象』,一个是print用来打
流浪猪头拯救地球
·
2023-11-27 18:46
#
C++
c++
函数
[c++] insert和emplace的区别
emplace()和emplace_back()是
c++11
新引入的方法。emplace()也是在iter处插入元素,其他元素后移。
Lkites
·
2023-11-27 05:48
C/C++
c++
stl
ZLMediaKit安装配置和推拉流
一、ZLMediaKit库简介ZLMediaKit是一个基于
C++11
的高性能运营级流媒体服务框架官方写的项目特点:基于
C++11
开发,避免使用裸指针,代码稳定可靠,性能优越。
十年编程老舅
·
2023-11-27 05:38
音视频开发
音视频
音视频开发
ZLMediaKit
rtsp服务器
流媒体服务器
C++ primer笔记
序:GooleC++styleGuide;无符号与带符号线程的结果会把带符号当成无符号计算p17:带.h会使用C的标准库文件,部分IDE不支持C++程序带.h头文件可以使用nullptr代替NULL(
C+
努瓦蒂埃
·
2023-11-27 04:46
C++
c++
【
C++11
】—— 包装器
目录一、function包装器1.function包装器基本介绍2.function包装器统一类型3.function包装器的使用场景二、bind包装器一、function包装器1.function包装器基本介绍function包装器也叫作适配器。C++中的function本质是一个类模板,也是一个包装器。function的作用是将具有相同调用形式的不同类型的可调用对象进行类型统一。//funct
霄沫凡
·
2023-11-26 23:25
C++入门到进阶
开发语言
c++
【c++】可调用对象(Callable Objects)
c++11
中有一个重要的概念叫做可调用对象(CallableObjects)。
七秒钟笔记
·
2023-11-26 23:23
c++
c++11
新特性篇-using的使用
Using的使用using在
C++11
之前就有,但在
C++11
中引入了一些扩展和新的用法。
Liuuuu408
·
2023-11-26 23:51
c++
开发语言
移动语义和完美转发
移动语义和完美转发移动语义移动语义是
C++11
引入的一项特性,通过右值引用(RvalueReference)实现。
Liuuuu408
·
2023-11-26 23:50
开发语言
c++
c++11
新特性篇-列表初始化
列表初始化概述列表初始化是
C++11
引入的一个新特性。**它允许使用花括号{}来初始化变量、数组、结构体等。
Liuuuu408
·
2023-11-26 23:50
c++
算法
开发语言
c++11
新特性篇-可调用对象包装器, 绑定器
可调用对象包装器,绑定器可调用对象可调用对象是指在C++中能够像函数一样被调用的实体。它包括了多种类型的对象,使得它们能够像函数一样被调用,可以是函数、函数指针、函数对象、Lambda表达式等。在C++中,具有以下特征之一的实体都被认为是可调用对象:1.函数:常规的函数,包括全局函数和类的成员函数。voidregularFunction(intx){//...}2.函数指针:指向函数的指针。#in
Liuuuu408
·
2023-11-26 23:18
c++
算法
开发语言
C++11
的weak_ptr弱引用的智能指针
弱引用指针weak_ptr是用来监视shared_ptr的,不会使引用计数器加1,它不管理shared_ptr内部的指针,主要是为了监视shared_ptr的生命周期,更像是shared_ptr的一个助手。weak_ptr没有重载操作符*和->,因为它不共享指针,不能操作资源,主要是为了通过shared_ptr获得资源的监测权,它的构造函数不会增加引用计数,它的析构不会减少引用计数,纯粹只是作为一
铲灰
·
2023-11-26 22:03
深入应用C++11
c++
开发语言
C++11
的unique_ptr独占的智能指针
unique_ptr是一个独占型的智能指针,它不允许其他的智能指针共享其内部的指针,不允许通过赋值将一个unique_ptr赋值给另外一个unique_ptr。下面这样是错误的:unique_ptrmyPtr(newT);unique_ptrmyOtherPtr=myPtr;///错误,不能复制unique_ptr不允许复制,但可以通过函数返回给其他的unique_ptr,还可以通过std::mo
铲灰
·
2023-11-26 22:33
深入应用C++11
c++
开发语言
C++11
的shared_ptr共享的智能指针
智能指针是存储指向动态分配(堆)对象指针的类。用于生存期控制,能够确保在离开指针所在作用域时,自动正确的销毁动态分配的对象,防止内存泄漏。它的一种通用实现技术是使用引用计数。美使用它一次,内部的引用计数加1,每析构一次,内部引用计数减1,减为0时,删除所指向的堆内存。shared_ptr共享的智能指针std::shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。在最
铲灰
·
2023-11-26 22:32
深入应用C++11
c++
开发语言
算法
C++11
的线程
线程的创建用std::thread创建线程非常简单,只需要提供线程函数或者线程对象即可,并可以同时指定线程函数的参数。下面是创建线程的示例:#include#includeusingnamespacestd;voidfunc(){cout#include#includeusingnamespacestd;voidfunc(){cout#include#include#includeusingnam
铲灰
·
2023-11-26 22:31
深入应用C++11
开发语言
c++
【
C++11
】nullptr关键字使用详解
系列文章目录
C++11
新特性使用详解-持续更新https://blog.csdn.net/xiaofeizai1116/category_12498334.html文章目录系列文章目录一、简介二、引入nullptr
小飞1116
·
2023-11-26 22:01
C++11
c++
开发语言
C++复制构造函数和移动构造函数的性能速度对比
一、对比
C++11
中引入了移动语义,用在资源频繁拷贝的地方。通过移动构造函数可以减少不必要的复制,带来性能上的提升。下面我们通过代码比较复制(拷贝)构造函数和移动构造函数的性能(速度)。
cuijiecheng2018
·
2023-11-26 22:29
C++
c++
C++拷贝构造函数与移动构造函数
在
C++11
标准之前,如果想用其它对象初始化一个同类的新对象,只能借助类中的拷贝构造函数。拷贝构造函数的实现原理是为新对象复制一份和其它对象一模一样的数据。
guobaoteacher
·
2023-11-26 22:59
C++
c++
开发语言
C++11
C++11
一切皆可列表初始化变量列表初始化自定义类型列表初始化structPoint{int_x;int_y;};intmain(){Pointp{1,2};return0;}数组列表初始化日期类列表初始化
孙鹏宇.
·
2023-11-26 21:37
c++
算法
开发语言
测量C++程序运行时间
C风格在C程序和
C++11
以前的C++程序中,测量程序运行时间一般使用clock函数和CLOCKS_PER_SEC常量,定义在中。
金色888
·
2023-11-26 20:51
C++11
新特性总结
C++11
的新特性1变量和基本类型1.1longlong类型扩展精度浮点数,10位有效数字1.2列表初始化初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化;比如:inti=0;inti={0
zdy0_2004
·
2023-11-26 17:02
C++
c++
C++11
的新特性
转自:http://www.cnblogs.com/George1994/p/6684989.htmlC++11的新特性1变量和基本类型1.1longlong类型扩展精度浮点数,10位有效数字1.2列表初始化初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化;比如:inti=0;inti={0};inti{0};inti(0);需要注意的是,当用于内置类型的变量时,这种初始化形式有一个重
xuchenhuics
·
2023-11-26 17:32
Modern C++ 变量声明与定义总结:auto,{},initializer_list与构造函数重载
自
C++11
/14标准推出后,C++变量声明与定义的方式也发生了一些改变,增加了一些更为现代化,并且不会引起歧义的设施。
WeiChen_PKU
·
2023-11-26 17:01
Modern
C++
《Effective Modern C++》读书笔记(1) -- 模板类型推导(template type deduction)
前段时间看了《EffectiveModernC++》这本书,收获颇多,书中讲解了许多
C++11
/14的特性,都是之前不太了解或者模糊的,看了之后茅塞顿开,强烈建议C++学习者看一看。
Xefvan
·
2023-11-26 17:01
C/C++
c++
template
Effective Modern C++:01类型推导
C++的官方钦定版本,都是以ISO标准被接受的年份命名,分别是C++98,C++03,
C++11
,C++14,C++17,C++20等。
C++11
及其后续版本统称为ModernC++。
weixin_30566111
·
2023-11-26 17:01
c/c++
数据结构与算法
c++学习之哈希
开放定址法方法二:闭散列:哈希桶/拉链法4.哈希表的封装哈希表封装后unordered_map简单封装unordered_set简单封装1.关于unordered系列关联式容器在unordered系列关联式容器是
C+
万众☆倾倒
·
2023-11-26 16:44
c++
学习
哈希算法
C发展史: K&R C/C89/C99/C11 以及 C++发展史: C++98/C++03/
C++11
C语言的发展阶段C语言之所以命名为C,是因为C语言源自KenThompson发明的B语言,而B语言则源自BCPL语言。1967年,剑桥大学的MartinRichards对CPL语言进行了简化,于是产生了BCPL(BasicCombinedProgrammingLanguage)语言。20世纪60年代,美国AT&T公司贝尔实验室(AT&TBellLaboratory)的研究员KenThompson闲
牛奶加啡咖
·
2023-11-26 03:26
C/C++基础学
C++
C++模板知识小结
模板的知识点通常会涉及到模板的基本概念、模板的使用、模板元编程和一些与模板相关的
C++11
及以后的新特性。
ArcherZTL
·
2023-11-26 02:56
c++
1024程序员节
C++之unordered_map/set的使用
提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log2N,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想.最好的查询是,进行很少的比较次数就能够将元素找到,因此在
C+
萤火夜
·
2023-11-25 22:54
c++
开发语言
[
C++11
]析构函数中std::thread::join()卡住无法退出
join()卡住分析直接原因:与mainthread退出时候发生死锁。main结束时候-->CRTlocktable.lock-->~-->join等待其他线程退出其他线程结束时候->等待main释放CRTlocktable.lock-->与main线程死锁上面的问题在vs2015中不存在了。其实是输出log导致的。比较奇怪线程函数中加入log输出为什么会导致std::thread::join()
文森88
·
2023-11-25 20:42
语言基础
线程
C++进阶 —— 列表初始化(
C++11
新特性)
列表初始化二,类列表初始化三,类模板列表初始化库模板初始化列表实现模拟模板初始化列表实现在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为
C+
挨代码
·
2023-11-25 07:05
#
C++
编程语言
c++
C++列表初始化
structPoint{int_x;int_y;};intmain(){intarray1[]={1,2,3,4,5};intarray2[5]={0};Pointp={1,2};return0;}而
C+
limou3434
·
2023-11-25 07:33
C++学习笔记
c++
开发语言
CCCCCCC指针CCCCC
程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,
C++11
中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(
lusic01
·
2023-11-24 22:20
java
jvm
开发语言
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他