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++11
特性-智能指针
智能指针是存储指向动态分配(堆)对象指针的类,确保离开指针所在的作用域时,自动销毁动态分配的对象,防止内存泄漏。智能指针实现的核心技术是引用计数,每使用一次,内部引用计数加1,每析构一次内部引用计数减1,减为0时,删除所指向的堆内存。智能指针使用需要包含头文件1.共享智能指针shared_ptrshared_ptr是个模板类,可以通过构造函数、reset、shared_ptr辅助函数初始化use_
残醉
·
2023-11-07 19:00
#
C++
c++
开发语言
C++11
新特性(四)——智能指针
文章目录一、什么是智能指针1.1RAII二、常见内存泄漏2.1什么是内存泄漏,内存泄漏的危害2.2常见内存泄漏分类三、智能指针发展史3.1智能指针原理3.2auto_ptr3.3unique_ptr3.4shared_ptr3.5智能指针的线程安全问题3.6定制删除器3.7循环引用问题3.8weak_ptr一、什么是智能指针在以往的代码编写中,内存资源管理问题一直是非常麻烦的。比如:malloc出
s_persist
·
2023-11-07 19:55
C++
c++
java
jvm
c++11
之智能指针
C++11
中提供了三种智能指针,使用这些智能指针时需要引用头文件:std::sha
心之所向便是光v
·
2023-11-07 19:54
C++11
c++
开发语言
VS Code 中解决 C++ 代码编写时的爆红
VSCode中解决C++代码编写时的爆红现象在VSCode中编写C++代码时,发现正常的
C++11
特性竟然标红,但是可以正常运行。
四夕小一冰
·
2023-11-07 19:53
VScode配置相关
vscode
ide
linux
c++
【
C++11
特性】智能指针
unique_ptrwake_ptr缘起提出该方法目的:很多时候开辟了空间都忘记释放,为了解决该问题,提出了智能指针方案头文件#includeauto_ptrauto_ptrpd(newdouble);C++98中提供方案,
C+
域中四大
·
2023-11-07 19:23
技术
日志
c++
C++11
新特性——智能指针之shared_ptr
此课件及源代码来自B站up主:码农论坛,该文章仅作为本人学习笔记使用。1、智能指针shared_ptrshared_ptr共享它指向的对象,多个shared_ptr可以指向(关联)相同的对象,在内部采用计数机制来实现。当新的shared_ptr与对象关联时,引用计数增加1。当shared_ptr超出作用域时,引用计数减1。当引用计数变为0时,则表示没有任何shared_ptr与对象关联,则释放该对
is-zq
·
2023-11-07 19:52
C++
开发语言
c++
c++11
新特性之独占指针unique_ptr
独占智能指针unique_ptr独占智能指针不允许其他智能指针共享内部的指针,可以通过它的构造函数初始化一个独占智能指针对象,但是不允许通过赋值将一个unique_ptr赋值给另一个unique_ptr。unique_ptr不允许复制,但可以通过函数返回其他的unique_ptr,还可以通过move来转义给其他的unique_ptr,这样原始的所有权就被转移了,这个原始指针还是被独占的。uniqu
为成大道踏平坎坷
·
2023-11-07 19:50
c++学习笔记
c++
智能指针
【14】
c++11
新特性 —>共享智能指针
在C++中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针(smartpointer)。智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作用域时,自动地销毁动态分配的对象,防止内存泄露。智能指针的核心实现技术是引用计数,每使用它一次,内部引用计数加1,每析构一次内部的引用计数减1,减为0时,删除所指向的堆内
<( ̄︶ ̄)Okay.
·
2023-11-07 19:44
c++11新特性
c++
算法
开发语言
深入理解
C++11
| 第三章 通用为本,专用为末
文章目录一、继承构造函数二、委派构造函数三、右值引用:移动语义和完美转发3.1指针成员与拷贝构造3.2移动语义3.3左值、右值与右值引用3.4std::move:强制转化为右值3.5移动语义的一些其他问题3.6完美转发四、显式转换操作符五、列表初始化5.1初始化列表5.2防止类型收窄六、POD类型七、非受限联合体八、用户自定义字面量九、内联名字空间十、模板的别名十一、一般化的SFINEA规则十二、
我叫RT
·
2023-11-07 16:38
#
C++
深入理解C++11
1024程序员节
C++11
C++
对‘pthread_create’未定义的引用_深入浅出 C++ 11 右值引用
推荐阅读原文:旧文翻新,最新版本请阅读原文1写在前面如果你还不知道
C++11
引入的右值引用是什么,可以读读这篇文章,看看有什么启发;如果你已经对右值引用了如指掌,也可以读读这篇文章,看看有什么补充。
weixin_39658900
·
2023-11-07 16:07
返回引用一个对象
c++ 未定义的引用_深入浅出 C++ 11 右值引用
写在前面如果你还不知道
C++11
引入的右值引用是什么,可以读读这篇文章,看看有什么启发;如果你已经对右值引用了如指掌,也可以读读这篇文章
weixin_39964978
·
2023-11-07 16:07
c++
未定义的引用
c++中左值和右值是什么意思
c++未定义的引用
未定义的引用怎么解决
《深入理解
C++11
:C++ 11新特性解析与应用》——3.3 右值引用:移动语义和完美转发...
3.3右值引用:移动语义和完美转发类别:类作者3.3.1指针成员与拷贝构造对C++程序员来说,编写C++程序有一条必须注意的规则,就是在类中包含了一个指针成员的话,那么就要特别小心拷贝构造函数的编写,因为一不小心,就会出现内存泄露。我们来看看代码清单3-16中的例子。在代码清单3-16中,我们定义了一个HasPtrMem的类。这个类包含一个指针成员,该成员在构造时接受一个new操作分配堆内存返回的
weixin_34268310
·
2023-11-07 16:37
c/c++
[转][
c++11
]我理解的右值引用、移动语义和完美转发
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则
weixin_34418883
·
2023-11-07 16:37
c/c++
《深入浅出
C++11
之2通用为本,专用为末》
2通用为本,专用为末2.1继承构造函数
C++11
中子类可以通过using声明来声明继承基类的构造函数。
kaydxh
·
2023-11-07 16:32
编程语言
c++
c++
后端
[
c++11
]右值引用、移动语义和完美转发
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则
小胡巴敲代码
·
2023-11-07 16:02
C++
c++11
[
c++11
]我理解的右值引用、移动语义和完美转发
c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则
申庆胜
·
2023-11-07 16:31
c/c++语音
深入理解C++中的move和forward!
导语|在
C++11
标准之前,C++中默认的传值类型均为Copy语义,即:不论是指针类型还是值类型,都将会在进行函数调用时被完整的复制一份!对于非指针而言,开销及其巨大!
腾讯云开发者
·
2023-11-07 16:30
c++
编程语言
python
java
面试
C++右值引用
1、左值、将亡值、纯右值:
C++11
的值必定属于:左值、右值(将亡值、纯右值)三者之一。不是左值就是右值。详见值类别。左值的特点:“有名字、可以取址”。没有名字或者不能取址,则必定是右值。
来日梦多长
·
2023-11-07 16:00
C++
c++
开发语言
C++11
新特性 : 右值引用 & 移动语义 & 完美转发
文章目录右值引用什么是左值和右值对比左值、右值universalreferences未定的引用类型移动语义配合右值引用避免深拷贝forward完美转发参考文献右值引用什么是左值和右值左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。所有的具名变量或对象都是左值,而右值不具名。在C++1
Borange54
·
2023-11-07 16:15
C++
c++
c++11
【12】
c++11
新特性 —>forward完美转发
右值引用类型是独立于值的,一个右值引用作为函数参数的形参时,在函数内部转发给内部其他函数时,他就变成了一个左值。并不是原来的类型了。如果需要按照参数原来的类型转发给另一个函数,可以使用std::forward()函数,该函数的功能称之为完美转发。std::forward(t);当T为左值引用类型(T&)时,t将被转换为T类型的左值;当T不是左值引用类型(T&)时,t将被转换为T类型的右值;用一个示
<( ̄︶ ̄)Okay.
·
2023-11-07 16:13
c++11新特性
c++
算法
开发语言
【13】
c++11
新特性 —>call_once
在某些特定情况下,某些函数只能在多线程环境下调用一次,比如:要初始化某个对象,而这个对象只能被初始化一次,就可以使用std::call_once()来保证函数在多线程环境下只能被调用一次。使用call_once()的时候,需要一个once_flag作为call_once()的传入参数,该函数的原型如下://定义于头文件templatevoidcall_once(std::once_flag&fla
<( ̄︶ ̄)Okay.
·
2023-11-07 16:13
c++11新特性
c++
算法
开发语言
【10】
c++11
新特性 —>move移动语义(1)
移动语义(MoveSemantics)是
C++11
引入的一个重要特性,它允许在不复制数据的情况下将资源(如内存、指针等)从一个对象转移到另一个对象,从而可以提高程序的性能。
<( ̄︶ ̄)Okay.
·
2023-11-07 16:12
c++11新特性
c++
开发语言
C++11
新特性:移动语义
C++11
的移动语义
C++11
引入了移动语义,这是一种用于优化对象拷贝操作的机制。
一如年少模样呀
·
2023-11-07 16:37
C++
c语言
操作系统
c++
算法
开发语言
C++11
/14新特性--右值引用、移动语义、完美转发
1、右值引用C++引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。(1)左值和右值C++中所有的是必然属于左值、右值二者之一。左值:指的是表达式结束后依然存在的持久化对象。右值:指的是表达式结束时就不再存在的临时对象。所有的具名变量或对象都是左值,而右值不具名。区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。右值又分为将亡值和纯右值。纯右值:就是c++9
夏之七
·
2023-11-07 16:05
C++
c++11
新特性
右值引用
移动语义
完美转发
C++11
Move semantics (移动语义)
C++11
加入了右值引用(valuereference)的概念(用&&标识),用来区分对左值和右值的引用。左值就是一个有名字的对象,而右值则是一个无名对象(临时对象)。
heary29
·
2023-11-07 16:04
C++
移动语义
c++11
C++ 11右值引用与移动语义 -----上
1、介绍 右值引用是
C++11
的新特性,初次接触觉得很难理解。因此我们将不直接给出右值引用的定义,而是从没有引入右值引用之前存在的问题,引入右值引用之后问题是如何解决的。
YoungSusie
·
2023-11-07 16:02
c++
右值引用
移动语义
move
c++11新特性
【11】
c++11
新特性 —>move移动语义(2)
在
c++11
标准中,引入右值引用和移动语义.移动构造函数允许对象的资源(比如堆内存、文件句柄等)在被移动时进行转移,而非传统的拷贝,这种机制可以大幅度提高性能,特别时对于大型对象来说。
<( ̄︶ ̄)Okay.
·
2023-11-07 16:59
c++11新特性
c++
java
开发语言
-std=gnu++11 与 -std=
c++11
有什么区别
-std=
c++11
,支持
C++11
标准;-std=gnu++11,支持
C++11
标准和GNU扩展特性
kgduu
·
2023-11-07 15:45
C++
c++
C++成长之路
看好的发展方向:证券行业软件开发、AI自动化开发、桌面端工具类开发,云桌面技术产品框架搭建MFC+Duilb+LibcefQt技术深入熟知编译器原理
C++11
/14等新知识的学习泛型编程/模板编程设计模式多线程并发多进程通讯各种锁及其优缺点必看书籍
简单前行
·
2023-11-07 14:04
c++
开发语言
C语言运行代码示例
这是一个基本的C++爬虫程序,使用了
C++11
版本。这个程序使用了
C++11
的标准库,包括了网络编程库(),字符串处理库()和文件操作库()。
华科℡云
·
2023-11-07 10:39
rust
开发语言
后端
【muduo源码剖析】Thread/ThreadPool源码解析
EventLoopThreadPool重要成员线程池中简单的负载均衡EventLoopThread详解EventLoopThread重要变量开启事件循环的细节Thread::start()真正开始创建线程前言参考muduo库使用
C+
Last-Week
·
2023-11-07 07:01
muduo源码解析
c++
linux
后端
服务器
muduo
【muduo源码剖析】Channel设计分析
TcpConnection生命周期的tie方法(防止用户误删操作)根据相应事件执行Channel保存的回调函数完整代码Channel.hChannel.cc参考什么是Channel参考muduo库使用
C+
Last-Week
·
2023-11-07 07:31
muduo源码解析
网络
c++
linux
后端
muduo
【muduo源码剖析】Poller/EPollPoller设计分析
方法填写活跃的连接fillActiveChannels更新channel在epoll上的状态从epoll中移除监视的channel完整代码EPollPoller.hEPollPoller.cc参考muduo库使用
C+
Last-Week
·
2023-11-07 07:31
muduo源码解析
后端
linux
c++
muduo
源码剖析
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(
C++11
) | 指针空值nullptr(
C++11
)
C++入门四1.内联函数1.1前言(引出内联函数)①写一个Add函数的宏定义②宏的缺点③C++对宏的态度1.2内联函数①概念②内联函数特性2.auto关键字(
C++11
)①类型别名思考②auto简介③auto
小余要努力
·
2023-11-07 07:51
C++初阶
c++
学习
auto关键字
内联函数
指针空值nullptr
C++11
新特性之右值引用
二,左值引用和右值引用比较三,右值引用的应用场景以及作用四,右值引用左值的场景分析五,完美转发总结前文在C++98标准后,
C++11
标准的更新为C++注入了新活力,
C++11
新加了140多个新特性,我们这里主要挑一些比较有价值的特性来深入了解一下
爱吃鱼的修猫
·
2023-11-07 00:21
C++
c++
开发语言
c++11
新特性之 右值引用
1.首先说一下什么是左值和右值左值就是可以取地址变量;右值不可取地址的变量。2.什么是引用?引用本质是别名,通过引用可以修改变量的值。传递参数时可以避免拷贝。3.什么是左值引用(左值变量前面取&)能指向左值,不能指向右值的引用就是左值引用。inta=10;int&b=a;int&c=10;//错误,左值引用指向了右值当然也是可以通过const来指向右值:constint&c=10;//编译通过co
不想讀研的研究僧
·
2023-11-07 00:51
c++
一些技巧
c++
右值引用
c++
11特性
【C++】
C++11
语法之右值引用
文章目录一、{}的扩展initializer_list的讲解:二、
C++11
一些小的更新decltypenullptr范围for新容器三、右值引用右值真正的用法完美转发默认成员函数总结一、{}的扩展在原先
^jhao^
·
2023-11-07 00:20
C++
c++
C++11
新特性_右值引用
一、区分左值和右值概念:可以位于赋值号=左边的称之为左值,只能放在赋值号右边的称之为右值二、左值引用和右值引用先介绍下左值引用1.变量左值引用常量左值引用,既可以操作左值也可以操作右值右值引用右值引用是两个引用符拼接在一起,必须进行初始化,且不能初始化为左值(只能使用右值进行初始化),右值引用是可以修改右值的,在这一点上是不同于左值引用的。变量右值引用右值引用是可以修改右值的常量右值引用
圆又圆de程序媛
·
2023-11-07 00:49
C++
c++
开发语言
后端
【7】
c++11
新特性 —>右值引用(1)
右值引用1.1右值
C++11
增加了一个新的类型,称为右值引用(R-valuereference),标记为&&,左值:存储在内存中、有明确存储地址(可取地址)的数据;右值:可以提供数据值的数据()不可取地址
<( ̄︶ ̄)Okay.
·
2023-11-07 00:18
c++11新特性
c++
开发语言
【9】
c++11
新特性 —>&&的特性
c++中,不是所有情况下&&都代表一个右值引用,具体的场景体现在模板和自动类型推到中,如果是模板参数,需要指定为&&,如果是自动类型推到需要指定为auto&&,在这两种场景下&&被称为未定义的引用类型,另外还有一点需要额外注意constT&&表示一个右值引用,不是未定义类型。例1:templatevoidf(T&¶m);voidf1(constT&¶m);//constT&&表示一
<( ̄︶ ̄)Okay.
·
2023-11-07 00:18
c++11新特性
c++
java
算法
C++11
新特性:右值引用
目录左值与右值左值引用与右值引用右值引用的作用移动构造和移动赋值合成的移动操作万能引用和完美转发左值与右值左值和右值都是一个表示数据表达式,和它们一样,左值一般出现在赋值表达式的左边(右边也可以)右值出现在赋值表达式的右边(不能出现在左边)我们可以看一下几个表达式来明确左值和右值的区别://左值a\b\*p都是左值,可以长时间存在constinta=100;doubleb=10.0;int*p=&
七号鹅毛
·
2023-11-07 00:47
C++阅读笔记
c++
开发语言
C++11
新特性(一)右值引用
@一、
C++11
简介在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为
C++11
之前的最新C++标准名称。
s_persist
·
2023-11-07 00:16
C++
c++
开发语言
【8】
c++11
新特性 —>右值引用(2)
#includeusingnamespacestd;int&&value=520;classTest{public:Test(){cout<<"construct:mynameisjerry"<
<( ̄︶ ̄)Okay.
·
2023-11-07 00:12
c++11新特性
c++
算法
开发语言
【C++入门:C++世界的奇幻之旅】
1.什么是C++2.C++发展史3.C++的重要性4.C++关键字5.命名空间6.C++输入&输出7.缺省参数8.函数重载9.引用10.内联函数11.auto关键字(
C++11
)12.基于范围的for循环
笨笨胡小巴
·
2023-11-07 00:10
C++初阶
c++
1024程序员节
C++11
:std::find_if和std::remove_if应用代码片段
C++11
:std::find_if和std::remove_if应用代码片段1、c++17之后std::string才拥有trim功能,那么
c++11
如何优雅的实现trim功能呢;下面摘录自https
port9527
·
2023-11-06 12:17
杂项
c++
开发语言
pthread_attr_getstacksize 问题
如果公司里用的还是比较老的代码的话,都是用的pthread库支持线程的,而不是
c++11
里的线程类。
猿来是码农
·
2023-11-06 10:42
#
线程/进程
c++
【C++】关于
C++11
系列,你需要知道这些事——
C++11
最全系列讲解(上篇)
目录一、
C++11
内容简介二、初始化表达式2.1C++98中{}的初始化问题2.2内置类型的列表初始化2.3自定义类型的列表初始化补充:std::initializer_list三、声明3.1auto3.2decltype
DingZlu666
·
2023-11-06 08:26
C++
c++
面向对象编程
c语言
开发语言
面试
c+++11并发编程语言,
C++11
并发编程:多线程std:thread
原标题:
C++11
并发编程:多线程std:thread一:概述
C++11
引入了thread类,大大降低了多线程使用的复杂度,原先使用多线程只能用系统的API,无法解决跨平台问题,一套代码平台移植,对应多线程代码也必须要修改
许馨元
·
2023-11-06 08:20
c+++11并发编程语言
多线程 /C++ 11 std::thread 类深入理解和应用实践
线程joinable"可加入"函数join和函数detach如何理解线程对象是被安全地销毁的native_handle线程句柄std::thread类的其他接口常见错误错误C2893错误C2653概述
C+
大河qu
·
2023-11-06 08:45
多线程编程
std.thread
thread
joinable
执行线程
std线程
线程的启动和停止
C++11
多线程编程 三:锁资源管理和条件变量
C++11
多线程编程一:多线程概述
C++11
多线程编程二:多线程通信,线程同步,锁
C++11
多线程编程三:锁资源管理和条件变量C/C++基础,Boost创建线程、线程同步3.1手动实现RAii管理mutex
小蜗牛冲鸭~
·
2023-11-06 08:11
C/C++基础
开发语言
c语言
c++
上一页
18
19
20
21
22
23
24
25
下一页
按字母分类:
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
其他