
visual studio VC++操作与知识总结
文章平均质量分 70
、zyx
c/c++,Linux,Qt,stm32 等研究ing
展开
-
C++中 map 的基本操作和嵌套map的使用
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。本文主要总结一下map基本用法和嵌套用法示例。一、map基本用法 1 头文件 #include <map> 2 定义 map<int, int> my_Map; //注意这里的int和int可以是其他类型 或者是typedef ...原创 2018-06-13 11:02:38 · 14201 阅读 · 0 评论 -
C++ 设计模式 之 单例模式
简述 单例模式是设计模式中最简单的形式之一。其目的是使得类的一个对象成为系统中的唯一的实例。 这种模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。要点 单例模式的要点有三个: 单例模式有且仅有一个实例 单例类必...原创 2018-06-19 11:51:47 · 233 阅读 · 0 评论 -
C++11 std::unique_lock与std::lock_guard区别及多线程应用实例
C++11 std::unique_lock与std::lock_guard区别及多线程应用实例 C++多线程编程中通常会对共享的数据进行写保护,以防止多线程在对共享数据成员进行读写时造成资源争抢导致程序出现未定义的行为。通常的做法是在修改共享数据成员的时候进行加锁--mutex。在使用锁的时候通常是在对...转载 2018-06-19 11:22:28 · 248 阅读 · 0 评论 -
C++多线程(三)
条件变量(Condition Variable)条件变量是一种同步原语(Synchronization Primitive)用于多线程之间的通信,它可以阻塞一个或同时阻塞多个线程直到:收到来自其他线程的通知超时发生虚假唤醒(Spurious Wakeup) C++11为条件变量提供了两个类std::condition_variable:必须与std::unique_lock配合使用std::con...原创 2018-06-14 20:02:29 · 808 阅读 · 0 评论 -
C++11之多线程(二)
二, 互斥对象和锁 互斥(Mutex::Mutual Exclusion) 下面的代码中两个线程连续的往int_set中插入多个随机产生的整数#include <thread>#include <set>#include <random>using namespace std;int main(){ std::set<int&g...原创 2018-06-14 19:52:20 · 2154 阅读 · 0 评论 -
C++11 之多线程(一)
一,多线程概述 线程(Thread)是程序中独立执行的指令流,通常是系统调度的基本单位。含有两个或两个以上线程的程序就称为多线程程序,在硬件允许的情况下多个线程可以彼此独立的并行执行。在许多情况下都需要使用多线程,比如: 1,程序需要进行一些IO操作,IO操作通常需要一些时间才能完成,在这段时间线程就会被阻塞。使用多线程就可以启动一个新的线程去等待IO操作完成,而当前线程就可以...原创 2018-06-14 17:04:00 · 355 阅读 · 0 评论 -
atexit函数详解
对C语言有所了解的人都知道main函数是整个程序的入口,但是其实不然,在内核中可以使用链接器来设置程序的开始地方。当内核使⽤⼀个exec函数执⾏C程序时,在调⽤main函数之前先调⽤⼀个特殊的启动例程,可执⾏程序将此例程指定为程序的起始地址。启动例程从内核获取命令⾏参数和环境变量,然后为调⽤main函数做好准备。 前面我们关注的是程序开始进入时的调用函数,而atexit函数是一个特殊的函...原创 2018-06-14 11:01:22 · 359 阅读 · 0 评论 -
C++中volatile关键字的使用详解
1,为什么使用volatile ? C/C++中的 volatile 关键字 和const对应,用来修饰变量,通常用于建立语言级别的memory barrier。这是BS在“The C++ Programming Language”对volatile修饰词的解释: A volatile specifier is a hint to a compiler that an object...原创 2018-06-14 10:55:17 · 7697 阅读 · 2 评论 -
C++容器整理
1,排序函数#include <algorithm>using namespace std;bool cmp(int a, int b){ return a < b;}int main(){ vector<int> myvec{ 3, 2, 5, 7, 3, 2 }; vector<int> lbvec(myvec); sort...原创 2018-06-14 10:29:33 · 181 阅读 · 0 评论 -
C++ 的标准string类操作整理
1,定义和构造初始化 String类的构造函数和析构函数如下:a) string s; //生成一个空字符串s b) string s(str) ; //拷贝构造函数 生成str的复制品 c) string s(str, stridx); //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str, s...原创 2018-06-13 17:54:09 · 252 阅读 · 0 评论 -
C++文件读写 fopen,fread,fweite
#include <stdio.h>/*** @brief 打开文件** @param path 需要打开的文件路径; mode 文件打开方式* mode: r, 以只读方式打开方式,该文件必须存在;* r+, 以可只读方式打开文件,该文件必须存在;* rb+,读写打开一个二进制文件,允许度数据;* rt+,读写打开一个文本文件,允许读和写;...原创 2018-06-13 13:46:06 · 889 阅读 · 0 评论 -
C++ 设计模式 之 简单工厂模式和工厂方法模式
简单工厂模式 简述 简单工厂模式 又叫 静态工厂方法模式,属于创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。 模式结构 工厂: 整个模式的核心,负责实现创建所有实例的内部逻辑。 抽象产品:所有具体产品的父类,负责描述所有实例所共有的公共接口。 具体...原创 2018-06-19 15:01:48 · 460 阅读 · 0 评论