C++基础
惜缘865
与其朝三暮四,不如选择一个领域深扎下去。
展开
-
CMakeLists.txt 添加Boost库
Demo描述:使用boost::mutex 锁机制,打印两个线程的输出。源码如下:#include <iostream>#include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> boost::mutex mutex;void print_block(int n...原创 2019-12-30 18:04:35 · 5145 阅读 · 1 评论 -
c++并发编程之线程的互斥与同步
什么是线程的同步与互斥?互斥:指在某一时刻指允许一个进程运行其中的程序片,具有排他性和唯一性。 对于线程A和线程B来讲,在同一时刻,只允许一个线程对临界资源进行操作,即当A进入临界区对资源操作时,B就必须等待;当A执行完,退出临界区后,B才能对临界资源进行操作。 同步:指的是在互斥的基础上,实现进程之间的有序访问。假设现有线程A和线程B,线程A需要往缓冲区写数据,线程B需要从缓冲区读数据...原创 2019-12-30 17:37:35 · 511 阅读 · 0 评论 -
c++线程中的几种锁
线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。在某一时刻,只有一个线程可以获...转载 2019-12-30 14:19:57 · 297 阅读 · 0 评论 -
C++ cout.setf()
cout.setf()的作用是通过设置格式标志来控制输出形式,如,其中ios_base::fixed表示:用正常的记数方法显示浮点数(与科学计数法相对应);ios_base::floatfield表示小数点后保留6位小数。setf()函数有两个原型:fmtflags setf(fmtflage) //第一原型fmtflags setf(fmtflags, fmtflags) //第二...原创 2019-12-10 22:33:42 · 1228 阅读 · 0 评论 -
C++ 浮点数精度丢失问题
float类型只能够表示数字中的前6位或者前7位。#include <iostream> using namespace std;int main(){ float a = 2.3400001E+7f; float b = a + 1.0f; cout.setf(ios::fixed); cout << "a = " &l...原创 2019-12-10 22:25:26 · 1468 阅读 · 1 评论 -
C++ split基本操作
源代码:void _split(const string &s, char delim, vector<string> &elems){ stringstream ss(s); string item; while (getline(ss, item, delim)) { elems.push_back(item); }}v...原创 2019-12-07 15:15:25 · 803 阅读 · 0 评论 -
C++ vector基本操作
一、什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。二、容器特性1.顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。2.动态数组支持对序列中的任意元素进行快速直接...原创 2019-12-07 10:13:29 · 1257 阅读 · 0 评论 -
C++获取数组的长度
1.定义一个数组int a[10]={6,3,8,1,10,5,5,9,2,7};2.使用sizeof(a)/sizeof(a[0])计算数组的长度;int length = sizeof(a)/sizeof(a[0]); 说明:sizeof()函数可以返回数组所占的内存,而sizeof(a[0])返回的是数组第一个元素所占的内存。3.测试#include <...原创 2019-02-19 23:09:00 · 55220 阅读 · 3 评论 -
ubuntu使用eclipse ide编译C++出现错误解决办法(CMake Error: CMake was unable to find a build program correspondin)
错误信息如下:Building in: /home/zheng/eclipse-workspace/Test/build/defaultcmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /home/zheng/eclipse-workspace/TestCMake Error: CMa...原创 2019-02-15 23:54:08 · 1428 阅读 · 0 评论 -
Ubuntu C/C++ 获取系统时间
使用OpenCV处理图像的时,可以使用linux系统的<sys/time.h>头文件获取图像处理时间。#include <sys/time.h>Code Example:#include <stdio.h>#include <sys/time.h>int main(int argc, char **argv) { struc...原创 2018-12-17 18:01:11 · 5367 阅读 · 0 评论 -
fatal error: io.h: No such file or director
Ubuntu16.04 编译Cpp工程时,报错#include <io.h>解决办法:sudo cp /usr/include/x86_64-linux-gnu/sys/io.h /usr/include原创 2018-12-10 18:05:29 · 13652 阅读 · 7 评论