
C++
文章平均质量分 70
hepangda
这个作者很懒,什么都没留下…
展开
-
[C++ 11] Range-based For
Range-based For 的一般形式想要遍历C++的各个容器类型以及原生数组,除了使用下标以及迭代器访问之外,还可以使用C++11的一种新的for循环形式,Range-based For。其一般的形式:for (declaration : expression) { statement;}以下是一个使用的例子:#include<iostream>int main() { in原创 2017-05-24 19:43:14 · 578 阅读 · 0 评论 -
[Asio] Using Asio with C++11
Using Asio with C++11这篇文章既作为Asio网络库的一个介绍,也作为Asio网络库与C++11进行协同实现和使用的一个简单的概览。本文主要介绍的不是跟随Boost发布的Asio库,而是Asio独立于Boost的一个版本,我们所介绍的这个版本的Asio有以下几个目标:在库接口上使用C++11语言和标准库特性。证明这个库可以在仅仅使用C++11标准库和操作系统提供的设施下...翻译 2018-12-24 17:37:17 · 4302 阅读 · 2 评论 -
【C++】C++ 17简单上手(2)——string_view
什么是string_viewstd::string_view是C++ 17标准中新加入的类,正如其名,它提供一个字符串的视图,即可以通过这个类以各种方法“观测”字符串,但不允许修改字符串。由于它只读的特性,它并不真正持有这个字符串的拷贝,而是与相对应的字符串共享这一空间。即——构造时不发生字符串的复制。同时,你也可以自由的移动这个视图,移动视图并不会移动原定的字符串。正因这些特性,当你不需...原创 2018-06-26 21:55:29 · 18841 阅读 · 3 评论 -
【C++】C++ 17简单上手(1)
写在前面C++ 17标准已经发布了有一段时间了(甚至于后一个版本C++ 20也在路上了),最近终于得空(懒癌治愈),查阅了相关资料,简单上手一下。简单的感受,一个是“现代”C++和C语言确实已经是天差地别,另一个就是标准库中的东西以及新语法确实更加方便我们编程了。虽然这些特性也许很长一段时间内都不一定用得上,然而学习一下总是好的,并且,体验一下“更现代”的C++的感觉也不错。带初始化的选择...原创 2018-06-26 19:24:43 · 3344 阅读 · 0 评论 -
[C++] algorithm库内容学习(1)
algorithm[C++ 11] std::all_of原型:template <class InputIterator, class UnaryPredicate> bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred);功能: 指定上下界内是否都符合某条件 用例...原创 2018-03-06 21:05:38 · 476 阅读 · 0 评论 -
[阶段练习] String类型实现
使用时#include包含以下代码的头文件即可:// File: pstring.hpp#ifndef __HEADER__PSTRING_#define __HEADER__PSTRING_#include<stdexcept>#include<iostream>class pstring {private: // 任意迭代器类型 template<typename F原创 2017-12-27 21:30:15 · 337 阅读 · 2 评论 -
[随手写写] 减少代码的“复制粘贴”——关于函数
写点啥?最近状态其实一直挺差的,有各种各样的破事,人很烦躁的说,希望早点能调整过来吧。这学期基本上不怎么更新博客了,一个是学的内容,语言向的多一些,直接写的话很像抄书,对自己的提升基本没有。我对自己的记性还是有点信心的,记忆方面一向不出什么大问题。其实也是自己暗地里开过很多想写的内容,不过都被懒癌战胜了,有点难过。决定还是找个小一点的东西写写,找找感觉。在群博看到了一篇博客,决定拿这个入口搞一下。原创 2017-12-11 20:37:31 · 522 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-线程相关(一):基本知识
线程包含的信息:每个线程中都包含有表示自身执行环境的信息,其中至少包括:标识线程的线程ID、一组寄存器的值、栈、调度优先级和策略、信号屏蔽字、errno变量和线程的私有数据。 线程函数的错误处理与返回值:与一般的POSIX函数不同,线程函数在执行发生错误的时候,一般不会设置errno全局变量值,而是直接返回表示错误类别的错误码。因此下面的函数若不特殊说明,一般不会设置errno。线程标识符函原创 2017-07-25 19:16:20 · 1140 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-线程相关(二):线程同步
以下内容中读写锁、自旋锁、屏障并没有在《Linux C编程实战》一书中提及,其内容来源于《Advanced Programming in the Unix Environment》中。互斥量 Mutex初始化、销毁函数原型及解释//对于静态分配的互斥量,可以通过赋特殊值的方法完成初始化,如:pthread_mutex_t one = PTHREAD_MUTEX_INITIALIZER;//对于原创 2017-07-26 11:33:32 · 424 阅读 · 0 评论 -
[GNU/Linux] Linux系统调用-进程相关
进程标识符函数原型及解释pid_t getpid(void);pid_t getppid(void);uid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);返回值:成功时getpid返回自身的pid,getppid返回自身父进程的pid,getuid返回自身的实际运行uid,geteui原创 2017-07-24 14:48:43 · 443 阅读 · 0 评论 -
[GNU/Linux] 自己实现ls
随便扯点什么实际上刚开始让我实现ls(1)我是拒绝的,因为,你不能让我写,我就马上去写,第一我要看一下,因为我不愿意写完了以后再加一些特技上去,比如ls忽然“Segmentation Fault”了,很懵逼、很低能,这样用过ls的人出来一定会骂我,根本没有这样辣鸡的ls,就证明这ls一点也不好用,就是在骗人。后来组长告诉我只用实现-a -l -R就好,我写了两天左右,感觉还不错,后来我在使用的时候就原创 2017-07-23 22:28:19 · 560 阅读 · 1 评论 -
[C++] 移动语义和右值引用
移动语义和右值引用特性说明C++11中最为重要的特性就是移动语义和右值引用。这两者带来的革命性变化,使得其成为大家选择C++11的理由,以及提升代码效率的必备之法。左值和右值C++中所有的表达式和值,要么是左值,要么是右值。通俗的来说,左值指可以使用&取得其地址的“非临时对象”,而右值则是指不可用&取得其地址的“临时对象”。int a = 0;在上面这个例子中,a可以...原创 2019-03-14 22:24:45 · 893 阅读 · 1 评论