C++
c++学习
Erqi_Huang
这个作者很懒,什么都没留下…
展开
-
【C++】字符串不区分大小写比较
_stricmp功能:用于比较两个字符串,不区分大小写,根据比较结果返回整数。用法:基本形式为_stricmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。#include <stdio.h>using namespace std;void main() { string str1 = "STR"; string str2 = "str"; if (0 == _stricmp(str1.原创 2020-10-26 10:19:31 · 5188 阅读 · 4 评论 -
【C++】获取当前目录下文件
void getFiles(string path, string exd, vector<string>& files){ //文件句柄 intptr_t hFile = 0; //文件信息 struct _finddata_t fileinfo; string pathName, exdName; if (0 != strcmp(exd.c_str(), "")) { exdName = "*." + exd; } else { exdName = "*"原创 2020-10-26 10:12:52 · 1178 阅读 · 1 评论 -
【C++】空结构体指针作为形参时传递参数
使用空指针,在函数内部赋值,需要使用指向指针的指针把一个指针作为参数时,指针不能为未指向地址的值,必须为一个指向确定地址的值参数为取地址符或者指针的指针函数内为空指针分配空间,退出函数后,函数中的赋值仍然存在例子struct StructA { char* a; char* b;};void testPtrStruct(struct StructA** _pS)...原创 2020-03-30 23:09:30 · 1665 阅读 · 0 评论 -
【C++】检测网络是否可用
static bool checkIsNetwork(){ Sleep(100); CoInitialize(NULL); // 通过NLA接口获取网络状态 IUnknown *pUnknown = NULL; BOOL bOnline = false; //是否在线 HRESULT Result = CoCreateInstance(CLSID_Netw...原创 2020-03-26 10:45:57 · 964 阅读 · 0 评论 -
【C++】静态变量定义
类内静态变量需在外部进行声明为什么?因为静态成员属于整个类,而不属于某个对象,如果在类内初始化,会导致每个对象都包含该静态成员,这是矛盾的。如果不增加int A::count = 0 ; //变量定义,在编译的时候将会报出:‘A::count’未定义的引用”错误。这是因为静态成员变量count未定义,也就是还没有分配内存,显然是不可以访问的。《c++primer》里面说在类外定义和初始化...原创 2020-03-17 18:54:18 · 2563 阅读 · 0 评论 -
【C++】SetTimer定时器函数使用
#include <iostream>#include <thread>using namespace stdvoid CALLBACK TimeProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime){ cout << "Timer callback function" <<...原创 2020-03-15 22:22:19 · 1100 阅读 · 0 评论 -
【C++】判断文件夹是否存在
#include <io.h> if (-1 == _access(dir.c_str(), 0)) { _mkdir(dir.c_str()); }文件夹不存在返回 -1原创 2020-03-11 22:58:15 · 134 阅读 · 0 评论 -
【C++】map和multimap应用
函数功能clear()删除所有元素count()返回一个元素出现的次数empty()如果multimap为空则返回真end()返回一个指向multimap末尾的迭代器equal_range()返回指向元素的key为指定值的迭代器对erase()删除元素find()查找元素get_allocator()返回multimap...原创 2020-02-01 14:05:24 · 199 阅读 · 0 评论 -
【C++】自加运算符重载
前置++:实现自增后,返回引用后置++:先保存当前对象的副本,实现自增操作后,返回副本前置++:CInt& operator ++()//前置++{ ++data; return *this;}参数: void返回值: 引用(CInt&),返回当前对象要使用引用,如果返回类型为CInt,返回的对象为临时量后置++:const CInt operat...原创 2020-01-28 19:45:28 · 336 阅读 · 0 评论 -
【C++】计算程序运行时间精确至毫秒
一、clock()计时函数clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t在MSDN中,查得对clock函数定义如下:clock_t clock(void) ;计算该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-...原创 2019-12-31 09:51:49 · 4011 阅读 · 3 评论 -
【C++】to_string函数
1 使用to_string函数在c++11标准中,我们可以使用to_string函数,将整型转换为字符串类型。1.1 to_string函数介绍to_string函数的用法如下:string to_string (int val);string to_string (long val);string to_string (long long val);string to_string...转载 2019-12-17 13:24:23 · 4334 阅读 · 0 评论 -
【C++】set/map 判断插入是否成功
#include <iostream>#include <set>using namespace std; int main() { set<int>my_set; my_set.insert(1); my_set.insert(2); my_set.insert(3); pair<set&...转载 2019-12-09 11:46:24 · 1041 阅读 · 0 评论 -
【C++】=运算符重载的注意事项
复制构造函数等号进行重载运算符时,应该重写复制构造函数,避免两个对象指向同一空间String (const String &S){ str = new char[strlen(s.str)+1]; strcpy(str, s.str);}...原创 2019-11-30 21:56:49 · 169 阅读 · 0 评论 -
【C++】复制构造函数详解
复制构造函数是构造函数的一种,也称拷贝构造函数,它只有一个参数,参数类型是本类的引用。复制构造函数的参数可以是 const 引用,也可以是非 const 引用。 一般使用前者,这样既能以常量对象(初始化后值不能改变的对象)作为参数,也能以非常量对象作为参数去初始化其他对象。一个类中写两个复制构造函数,一个的参数是 const 引用,另一个的参数是非 const 引用,也是可以的。如果类的设计者...转载 2019-11-30 21:56:19 · 846 阅读 · 0 评论 -
【C++】获取系统当前时间
void gettime(){time_t rawtime;struct tm *ptminfo;time(&rawtime);ptminfo = localtime(&rawtime);printf(“current: %02d-%02d-%02d %02d:%02d:%02d\n”,ptminfo->tm_year + 1900, ptminfo->t...原创 2019-11-30 19:48:22 · 137 阅读 · 0 评论 -
【c++】#pragma once用法总结
1.#pragmaonce这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。2.两者的使用方式有何区别?示例代码如下:复制代码//方式一:#ifndef SOMEFILE_H#define...转载 2019-11-30 09:49:38 · 552 阅读 · 0 评论 -
【C++】如果声明一个对象指针时,会不会调用构造函数?
C++中如果声明一个对象指针时没有分配内存,那么不会调用构造函数一个指针在内存中也是有内存空间的。在现在大多数机器上指针都是32位的,也就是4个字节。如果你声明指针。例如,假设A是一个类A *pa;这内存中会分配4个字节的空间存储一个地址。只不过地址是不可以用的,因为它没有有效的指向某一个有用的内存空间。这和你声明一个int类型是一样的。int p;内存中也会分配4个字节空间给p来存.........转载 2019-11-30 08:19:43 · 6591 阅读 · 1 评论 -
【C++】强制类型转换运算符的重载
在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于对象.operator 类型名(),即变成对运算符函数的调用。下面的程序对 double 类型强制转换运算符进行了重载。#include <io...转载 2019-11-30 09:17:33 · 865 阅读 · 0 评论