C/C++
文章平均质量分 70
binvang
这个作者很懒,什么都没留下…
展开
-
C++string类常用函数
C++string类常用函数string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会原创 2016-08-24 23:46:20 · 216 阅读 · 0 评论 -
并发编程 C++11 互斥量使用
C++中通过实例化 std::mutex 创建互斥量,通过调用成员函数lock()进行上锁,unlock()进行 解锁。不过,不推荐实践中直接去调用成员函数,因为调用成员函数就意味着,必须记住在 每个函数出口都要去调用unlock(),也包括异常的情况。C++标准库为互斥量提供了一个RAII 语法的模板类 std::lock_guard ,其会在构造的时候提供已锁的互斥量,并在析构的时候进行 解锁,原创 2017-10-07 22:11:44 · 1365 阅读 · 1 评论 -
C++ 关键字——friend
友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都原创 2017-10-07 22:19:34 · 241 阅读 · 0 评论 -
并发编程 C++11 lock_guard
从_mutex_base中看到lock_guard 的实现源码如下:template <class _Mutex>class _LIBCPP_TYPE_VIS_ONLY lock_guard{public: typedef _Mutex mutex_type;private: mutex_type& __m_;public: _LIBCPP_INLINE_VISIBIL原创 2017-10-07 23:05:51 · 345 阅读 · 0 评论 -
并发编程 C++11 unique_lock
Mutex 系列类(四种)std::mutex,最基本的 Mutex 类。 std::recursive_mutex,递归 Mutex 类。 std::time_mutex,定时 Mutex 类。 std::recursive_timed_mutex,定时递归 Mutex 类。Lock 类(三种)std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。 std:原创 2017-10-08 00:02:25 · 470 阅读 · 0 评论 -
define 语句中的 # 和 ## 的作用与区别
阅读C/C++源码时经常看到define语句中#和##,这里记录下其区别和用法。先看如下代码:#include <stdio.h>// 测试不带 # 号的效果#define NO_NUMBER_SIGN(x) x// 测试一个 # 号的效果#define SINGLE_NUMBER_SIGN(x) #x// 测试两个 # 号的效果#define DOUBLE_NU...原创 2019-07-03 23:06:37 · 928 阅读 · 0 评论 -
宏LONG_MAX和LLONG_MAX
宏LONG_MAX和LLONG_MAX均存在与头文件limits.h中,分别表示long int 和long long int类型的最大值。下面程序在64位编译系统中,打印该宏的值。#include <stdio.h>#include <limits.h>#include <string.h>int main() { char buf[100...原创 2019-07-04 23:59:28 · 14005 阅读 · 0 评论