C++11/14中的新特性:对标准库的扩充 - 正则表达式
尊重原创,转载自实验楼,如需线上实操,请直接访问原教程网址:点击这里。
本博文仅作为备份,侵删。
“C++11/14中的新特性”系列汇总:
C++11/14中的新特性:语言可用性的强化
C++11/14中的新特性:语言运行期的强化
C++11/14中的新特性:对标准库的扩充 - 智能指针和引用计数
C++11/14中的新特性:对标准库的扩充 - 正则表达式
C++11/14中的新特性:对标准库的扩充 - 新增容器
C++11/14中的新特性:对标准库的扩充 - 语言级线程支持
C++11/14中的新特性:其他杂项
一、正则表达式简介
正则表达式不是 C++ 语言的一部分,这里仅做简单的介绍。
正则表达式描述了一种字符串匹配的模式。一般使用正则表达式主要是实现下面三个需求:
检查一个串是否包含某种形式的子串;
将匹配的子串替换;
从某个串中取出符合条件的子串。
正则表达式是由普通字符(例如 a 到 z)以及特殊字符组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
普通字符
普通字符包括没有显式指定为 ...
C++11/14中的新特性:对标准库的扩充 - 智能指针和引用计数
尊重原创,转载自实验楼,如需线上实操,请直接访问原教程网址:点击这里。
本博文仅作为备份,侵删。
“C++11/14中的新特性”系列汇总:
C++11/14中的新特性:语言可用性的强化
C++11/14中的新特性:语言运行期的强化
C++11/14中的新特性:对标准库的扩充 - 智能指针和引用计数
C++11/14中的新特性:对标准库的扩充 - 正则表达式
C++11/14中的新特性:对标准库的扩充 - 新增容器
C++11/14中的新特性:对标准库的扩充 - 语言级线程支持
C++11/14中的新特性:其他杂项
一、RAII 与引用计数
了解 Objective-C/Swift 的程序员应该知道引用计数的概念。引用计数这种计数是为了防止内存泄露而产生的。基本想法是对于动态分配的对象,进行引用计数,每当增加一次对同一个对象的引用,那么引用对象的引用计数就会增加一次,每删除一次引用,引用计数就会减一,当一个对象的引用计数减为零时,就自动删除指向的堆内存。
在传统 C++ 中,『记得』手动释放资源,总不是最佳实践。因为我们很有可能就忘记了去释放资源而导致泄露。所以通常的做法是对于一个 ...
C++11/14中的新特性:语言运行期的强化
尊重原创,转载自实验楼,如需线上实操,请直接访问原教程网址:点击这里。
本博文仅作为备份,侵删。
“C++11/14中的新特性”系列汇总:
C++11/14中的新特性:语言可用性的强化
C++11/14中的新特性:语言运行期的强化
C++11/14中的新特性:对标准库的扩充 - 智能指针和引用计数
C++11/14中的新特性:对标准库的扩充 - 正则表达式
C++11/14中的新特性:对标准库的扩充 - 新增容器
C++11/14中的新特性:对标准库的扩充 - 语言级线程支持
C++11/14中的新特性:其他杂项
一、Lambda 表达式
Lambda 表达式是 C++11 中最重要的新特性之一,而 Lambda 表达式,实际上就是提供了一个类似匿名函数的特性,而匿名函数则是在需要一个函数,但是又不想费力去命名一个函数的情况下去使用的。这样的场景其实有很多很多,所以匿名函数几乎是现代编程语言的标配。
Lambda 表达式基础
Lambda 表达式的基本语法如下:
[捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 {
// 函数体 ...
C++11/14中的新特性:语言可用性的强化
尊重原创,转载自实验楼,如需线上实操,请直接访问原教程网址:点击这里。
本博文仅作为备份,侵删。
“C++11/14中的新特性”系列汇总:
C++11/14中的新特性:语言可用性的强化
C++11/14中的新特性:语言运行期的强化
C++11/14中的新特性:对标准库的扩充 - 智能指针和引用计数
C++11/14中的新特性:对标准库的扩充 - 正则表达式
C++11/14中的新特性:对标准库的扩充 - 新增容器
C++11/14中的新特性:对标准库的扩充 - 语言级线程支持
C++11/14中的新特性:其他杂项
一、nullptr 与 constexpr
nullptr
nullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。
C++ 不允许直接将 void * 隐式转换到其他类型,但如果 NULL 被定义为 ((void*)0),那么当编译
char *ch = NULL;
时,NULL 只好被定 ...
C++数据类型及各种形式的输入输出汇总
数据类型输入输出汇总
巩固C++知识时数据类型及输入输出形式汇总:
数据类型
位
中文名
输入输出形式
char
1个字节
字符型
%c
int
4个字节
整型
%d
short(short int)
2个字节
短整型
%d
long(long int)
8个字节
长整型
%ld
long long(long long int)
8个字节
长整型(C++标准)
%lld
float
4个字节
浮点型
%f
double
8个字节
双精度浮点型
% lf
补充
另外,补充如下:
%e 表示按指数形式的浮点数的格式输出
%g 表示自动选择合适的表示法输出
%u 表示输出无符号的unsigned(比如unsigned long long int 的输入输出形式就是%llu);
printf("%%");这样才能输出符号%
数据类型简介
char:char为一个字节,所以char的unsigned的范围是0到255,signed类型的话就是-128到127(-28->27-1);输入输出:%c
int:在32位系 ...
类似Windows的WinSCP的FTP工具FileZilla简介(WinSCP for linux)
大多数从事windows操作系统界面的服务器端开发者对winSCP再熟悉不过,但是当我们转为Linux操作系统界面下的服务器端开发时,就将一脸懵。。。
怎么连WinSCP都没有,我又觉得“scp”的文件传输命令太麻烦,那你们copy文件是用的什么?于是在各个搜索引擎上搜索“WinSCP for Linux/Ubuntu/CentOS”,What?都是什么鬼?于是有了这篇博文。
什么是 WinSCP
WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。
WinSCP,顾名思义,就是Windows下的SCP传输工具,嘿嘿,是不是本来Windows没有文件传输工具,把Linux的scp命令封装到了这个软件?这就不得而知了。
scp和ftp简介
FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以 ...
H5+CSS3+JS实现唱片歌单封面首尾相接左右无缝滚动效果
实现唱片歌单封面左右滚动效果:
效果展示
代码实现
<!DOCTYPE html>
<head>
<title>首尾相接</title>
<style>
.songList {
width: 100vw;
height: 600px;
display: flex;
flex-wrap: nowrap;
flex-direction: row;
align-items: flex-end;
overflow-y: hidden;
overflow-x: scroll;
}
.songList li {
width: 240px;
height: 600px;
min- ...
ubuntu16.04下python辅助bitbake编译脚本
做大型项目的过程中使用bitbake,免不了源代码在不止一个地方,这个python脚本是我上司写的一个简单脚本,直接上代码,做个备份:
//pybuild.py
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384#! /usr/bin/pythonimport osimport filecmpimport shutilavs_device_sdk = { "PRJ_ROOT" : "/home/patten/workspace/austin/", "SRC_PATH" : "guest/linux/meta-austin ...
JS中window.requestAnimationFrame()获取浏览器刷新帧率FPS及相关函数rAF()
在实际项目实践中,甲方爸爸提出了一个需求,实时传输Chrome浏览器的刷新帧率(FPS)至性能监控模块,于是各种搜索,找到了一个比较好的解决方案,就是利用下面这个函数:window.requestAnimationFrame()。
requestAnimationFrame()引入
计时器一直是JavaScript动画的核心技术。而编写动画循环的关键是要知道延迟时间多长合适。一方面,循环间隔必须足够短,这样才能让不同的动画效果显得平滑流畅;另一方面,循环间隔还要足够长,这样才能确保浏览器有能力渲染产生的变化。
大多数电脑显示器的刷新频率是60Hz,大概相当于每秒钟重绘60次。大多数浏览器都会对重绘操作加以限制,不超过显示器的重绘频率,因为即使超过那个频率用户体验也不会有提升。因此,最平滑动画的最佳循环间隔是1000ms/60,约等于16.6ms。
window.requestAnimationFrame(查看相关文档),顾名思义就是请求动画帧,去告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在 ...
nodejs解析含中文的url或字符串中的百分号编码
写网站的时候,前端表单发送数据到nodejs服务器,发送的数据会出现一些乱码,像下面这样:
userName=%E7%8F%AD%E8%A1%A5&email=zhaopin%40junmatek.com&info=%E8%B7%AF1388%E5%8F%B7%E6%B0%91%E6%B6%A6%E5%A4%A7%E5%8E%A6%E4%B8%80%E5%8F%B7
百分号编码原理
百分号编码(也被称为URI编码)的产生是为了防止SQL注入,所以将一些特殊字符转换为对应的百分号编码,详细原理可以自行搜索。
nodejs如何解码
decodeURI()函数
let url = "userName=%E7%8F%AD%E8%A1%A5&email=zhaopin%40junmatek.com&info=%E8%B7%AF1388%E5%8F%B7%E6%B0%91%E6%B6%A6%E5%A4%A7%E5%8E%A6%E4%B8%80%E5%8F%B7"
let decode_url = decodeURI(url)
consol ...