
C++学习
monk1992
这个作者很懒,什么都没留下…
展开
-
C++控制CPU核的使用
SetProcessAffinityMask参数一:进程句柄 -1为自身句柄参数二:指定CPU参数二的设置是二进制转十进制。参数二需填写十进制数字例如我想设置1CPU二进制为1 转换为十进制为 12CPU二进制为10 转换为十进制为 23CPU二进制为100 转换为十进制为 44CPU二进制为1000 转换为十进制为 81,2CPU二进制为11 转换为十进制为 33,4C...原创 2019-11-08 13:59:56 · 2995 阅读 · 0 评论 -
C++使用thread类多线程编程
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-e2445db1a8.css"> <div class="htmledit_views">C++11中引...转载 2018-08-14 10:03:27 · 344 阅读 · 0 评论 -
c++11特性里的多线程thread的用法
创建和启动一条C++线程就像在C++源码中添加线程头文件那么简便。我们来看看如何创建一个简单的带线程的HelloWorld:#include <iostream>#include <thread>using namespace std; //This function will...转载 2018-08-14 10:08:46 · 285 阅读 · 0 评论 -
c++中多个线程使用同一个函数
我是小白,最近在学习实现一个简单的线程池,线程池中维护了一个存放线程的数组以及一个任务队列。在创建线程池(构造函数中)时创建若干个线程,起始时由于任务队列中没有任务,创建的每一个线程都处于阻塞状态。使用pthread_create函数创建线程时把所有的线程与同一个函数关联在一起,也就是产生如下的代码:...转载 2018-08-14 10:18:33 · 8697 阅读 · 0 评论 -
关于C++ map容器的使用和pair类型及函数
首先make_pairPairs C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象 classpair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元...转载 2018-08-15 09:00:40 · 1723 阅读 · 0 评论 -
string类成员函数find/find_first_of用法详解
一:find函数原型:size_t find ( const string& str, size_t pos = 0 ) const;size_t find ( const char* s, size_t pos, size_t n ) const;size_t find ( const...转载 2018-08-15 13:21:18 · 652 阅读 · 0 评论 -
C++中string::npos的一些用法总结
一、关于npos的定义在MSDN中有如下说明:basic_string::nposstatic const size_type npos = -1;//定义The constant is the largest...转载 2018-08-15 13:23:58 · 160 阅读 · 0 评论 -
C++之substr与substring浅谈
转自:http://blog.sina.com.cn/s/blog_9d85c1900102v1rm.html区别:主要是两者的参数不同功能:相似 substr :返回一个从指定位置开始的指定长度的子...转载 2018-08-15 13:41:18 · 21592 阅读 · 4 评论 -
C++inline函数简介1
1.inline函数简介inline函数是由inline关键字来定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数。2.编译器对inline函数的处理办法inline对于编译器而言,在编译阶段完成对inline函数的处理。将调用动作替换为函数的本体。但是它只是一种建议,编译器可以去做...转载 2018-08-15 14:36:06 · 1905 阅读 · 0 评论 -
C++中的inline用法2
1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个例子:...转载 2018-08-15 14:36:56 · 116 阅读 · 0 评论 -
C++string中用于查找的find系列函数浅析
总述: 以下所讲的所有的string查找函数,都有唯一的返回类型,那就是size_type,即一个无符号整数(按打印出来的算)。若查找成功,返回按查找规则找到的第一个字符或子串的位置;若查找失败,返回npos,即-1(打印出来为4294967295)。1.find()原型://string (1)size_type ...转载 2018-08-15 15:15:37 · 119 阅读 · 0 评论 -
C++ 退出双层for循环,解决 break、return、continue无法实现问题
遇到一个情景,采用双层for循环 遍历图像的像素,当找到某一个像素点满足条件时,退出双层for 循环 。首先了解一下 continue、break、return 各自功能用法:1.continue 语句的作用 终止本次循环的执行,即跳过当前一次循...转载 2018-08-15 15:30:28 · 8462 阅读 · 0 评论 -
c++学习之容器——erase()函数
先介绍erase()函数的用法,erase()函数用于在顺序型容器中删除容器的一个元素,有两种函数原型,c.erase(p),c.erase(b,e);第一个删除迭代器p所指向的元素,第二个删除迭代器b,e所标记的范围内的元素,c为容器对象,返回值都是一个迭代器,该迭代器指向被删除元素后面的元素(这个...转载 2018-08-16 11:09:30 · 2275 阅读 · 2 评论 -
C++11中std::mutex的使用
C++11中新增了<mutex>,它是C++标准程序库中的一个头文件,定义了C++11标准中的一些互斥访问的类与方法等。其中std::mutex就是lock、unlock。std::lock_guard与std::mutex配合使用,把锁放到lock_gu...转载 2018-08-22 10:05:50 · 407 阅读 · 0 评论 -
容器vector的clear函数详解1
最近经常用到vector容器,发现它的clear()函数有点意思,经过验证之后进行一下总结。clear()函数的调用方式是,vector<datatype> temp(50);//定义了50个datatype大小的空间。temp.clear();作用:将会清空temp中的所有元素,包括t...转载 2018-08-17 10:47:57 · 3947 阅读 · 1 评论 -
vector容器--正确释放vector的内存(clear(), swap(), shrink_to_fit())
关于vector已经写的差不多了,似乎要接近尾声了,从初始化到如何添加元素再到copy元素都有所涉及,是时候谈一谈内存的释放了。是的,对于数据量很小的vector,完全没必要自己进行主动的释放,因为那样对程序的效率几乎没有影响。但是当vector中存入大量的数据后,并且都数据进行了一些操作,比如删除后,如果我们能积...转载 2018-08-17 10:49:11 · 336 阅读 · 0 评论 -
memset()函数及其作用
1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, &...转载 2018-08-20 08:59:56 · 766 阅读 · 0 评论 -
WideCharToMultiByte和MultiByteToWideChar函数的用法1
为了支持Unicode编码,需要多字节与宽字节之间的相互转换。这两个系统函数在使用时需要指定代码页,在实际应用过程中遇到乱码问题,然后重新阅读《Windows核心编程》,总结出正确的用法。WideCharToMultiByte的代码页参数用来标记目的字符串相关的代码页。MultiByteToWideC...转载 2018-08-20 09:01:07 · 525 阅读 · 0 评论 -
WideCharToMultiByte
int WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCST...转载 2018-08-20 09:05:47 · 4702 阅读 · 0 评论 -
C\C++中strcat()函数
将两个char类型链接。char d[20]=”GoldenGlobal”; char *s=”View”; strcat(d,s);结果放在d中printf(”%s”,d);输出 d 为 GoldenGlobalView (中间无空格)d和s所指内存区域不可以重叠且d必须有足够的...转载 2018-08-20 09:12:38 · 556 阅读 · 0 评论 -
C++ string append方法的常用用法
C++ string append方法的常用用法 <div class="postBody"> <div id="cnblogs_post_body" class="blogpost-body"><p>append函数是向stri..转载 2018-08-20 09:35:03 · 4960 阅读 · 0 评论 -
C++ vector的reserve和resize详解
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下: reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新...转载 2018-08-28 13:16:32 · 187 阅读 · 0 评论 -
C++命名空间 namespace的作用和使用解析
一、 为什么需要命名空间(问题提出)命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。1、全局变量的作用域是整个程序,在同一作用域中不应有两个或多个同名的实体(enuty)...转载 2018-08-28 13:18:12 · 1222 阅读 · 0 评论 -
C语言详解 - 枚举类型
注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4...转载 2018-08-28 13:52:36 · 190 阅读 · 0 评论 -
openMP的一点使用经验
最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的底层知识,从而提高编程效率。这两天关注的多核编程的工具包括openMP和TBB。按照目前网上的讨论,...转载 2018-08-28 14:18:50 · 249 阅读 · 0 评论 -
OpenMP多核编程
Eclipse下配置:http://www.ipd.uni-karlsruhe.de/multicore/research/download/HowToGuide-OpenMP.pdf或cmakelist中设置:FIND_PACKAGE( OpenMP...转载 2018-08-28 14:44:10 · 1252 阅读 · 0 评论 -
C++中的_access函数
今天读代码看到一个access函数,当时没明白怎么回事。man了一下才知道该函数主要用于文件读取方面——判断文件是否存在,并判断文件是否可写。Linux下,该函数为access,位于头文件<unistd.h>中,而在标准C++中,该函数为_access,位于头文件<io.h>中,...转载 2018-08-21 13:33:04 · 51264 阅读 · 3 评论 -
c++ cpp和hpp------代码分类
首先,我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。一个.cpp对应一个.obj,然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。 链接器将所有的...转载 2018-08-28 16:52:24 · 604 阅读 · 0 评论 -
重构代码的思路和方法1
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/elricboa/article/details/78137931 ...转载 2018-08-28 17:25:44 · 312 阅读 · 0 评论 -
C++用 _findfirst 和 _findnext 查找文件1
一、这两个函数均在io.h里面。 二、首先了解一下一个文件结构体:struct _finddata_t { unsigned attrib; time_t t转载 2018-08-29 08:56:08 · 598 阅读 · 0 评论 -
c++关于文件夹(文件)的相关操作_findfirst,_findnext和_findclose方法2
获取windows下某文件下的所有文件,立即应用。【说明】可以找到某文件下的任意类型的子文件夹和任意格式的文件,根据”*“来进行任意字符串的替代。#include <iostream> #include <string> #include <io.h> using namespace std; void main(){ _finddata_...转载 2018-08-29 08:58:01 · 1207 阅读 · 1 评论 -
C++ 中利用 _findfirst遍历所有文件夹及文件,以及findnext win10报错解决办法3
C++中读取文件可以采用几个函数分别为,_findfirst、_findnext、_findclose。其中还要借助结构体 struct _finddata_t,_finddata_t主要用来存储各种文件的信息。struct ...转载 2018-08-29 08:58:44 · 439 阅读 · 0 评论 -
C语言 mkdir 创建多级目录
通过例子来说明:我要在当前目录下创建 head/follow/end/ 目录C语言中mkdir原型为int mkdir(const char *pathname, mode_t mode);mkdir()函数以mode方式创建一个以pathname为...转载 2018-08-29 09:09:26 · 4371 阅读 · 0 评论 -
strcpy和strdup比较和详解1
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/koozxcv/article/details/49306751 ...转载 2018-08-29 09:13:39 · 201 阅读 · 0 评论 -
C++中的1和1L
unsigned long p; p=1; //隐式的强制转换; unsignled long p; p=1L; //显式的强制转换; 对于p没有什么不同; ...转载 2018-08-29 09:26:03 · 3078 阅读 · 0 评论 -
_findnext 报错
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/guanyuqiu/article/details/79726271 ...转载 2018-08-29 13:26:34 · 423 阅读 · 0 评论 -
C++11 std::thread在类的成员函数中的使用
#include <thread>#include <iostream>class Wrapper { public: void member1() { std::cout << "i am member1" << std::endl; } void member2(c...转载 2018-09-04 16:48:07 · 1454 阅读 · 0 评论 -
无法找到“XXX.exe”的调试信息,或者调试信息不匹配
今天调试一C++程序,按下F5,老是弹出一对话框显示信息:debugging information for ‘myproject.exe’ cannot be found or does not match. No symbols loaded. 翻译...转载 2018-08-30 11:21:51 · 364 阅读 · 0 评论 -
vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 vector类常用的函数如下所示: 1.构造函数vector():创建一个空ve...转载 2018-09-11 16:46:29 · 296 阅读 · 0 评论 -
VS未能正确加载解决方案中的一个或多个项目,无法读取项目文件“XXXX.vcxproj”解决方法
错误提示:点击确定后提示:问题原因:OpenCV路径无法读取导致无法正常加载文件解决方案:使用记事本或文本编辑器打开“XXXX.vcxproj”文件,删除OpenCV路径,正常进入工程后重新配置Ope...转载 2018-09-03 11:10:05 · 6258 阅读 · 0 评论