
C++
主要记录日常C++使用问题及解决办法
LoveWeeknd
不积跬步无以至千里不积小流无以成江海
展开
-
c++ const 转 非const
方式1:void fun(const QPixmap * temp){ QPixmap *p = const_cast<QPixmap *>(temp);//const 转 非const }方式2:void fun(const QPixmap * temp){ QPixmap p = *const_cast<QPixmap *>...原创 2020-02-02 09:31:31 · 1208 阅读 · 0 评论 -
shared_ptr初始化方式
方式1:shared_ptr<string> ss(new string("AAA"));方式2:shared_ptr<string> ss = shared_ptr<string>(new string("AAA"));方式3:shared_ptr<string> ss;ss.reset(new string("AAA"...原创 2020-01-13 22:28:10 · 4137 阅读 · 0 评论 -
关于char*初始化以及赋值问题
情况1:char ss[] = "ABCDEF";char *p = ss;这里的p指向的是一个非const char类型变量ss,因此可以任意更改指针指向的内容,一下两种方式均可更改数组内容(p+1) = 'X';p[0] = 'X';情况2:char *p = "ABCDEF";此种情况下p指向的是一个const char类型变量,故无法更改数组内容,但可以进行指针位移操作*(p + 1)...原创 2018-06-25 11:57:09 · 9323 阅读 · 0 评论 -
数组做参数时实际上传递的是指针
void example(char acWelcome[]) { printf("%d", sizeof(acWelcome)); return;}int main() { char acWelcome[] = "Welcome to Huawei Test"; example(acWelcome); printf("\n%d\n", sizeof(ac...原创 2018-06-23 18:01:07 · 1678 阅读 · 0 评论 -
函数返回char* 的解决方案
转载自:https://www.cnblogs.com/wiessharling/p/3182871.html在C语言中,自动变量在堆栈中分配内存。当包含自动变量的函数或代码块退出时,它们所占用的内存便被回收,它们的内容肯定会被下一个所调用的函数覆盖。这一切取决于堆栈中先前的自动变量位于何处,活动函数声明了什么变量,写入了什么内容等。原先自动变量地址的内容可能被立即覆盖,也可能稍后才被覆盖。 解...转载 2018-06-25 18:26:32 · 4225 阅读 · 0 评论 -
UDP通信发送端和接收端代码
发送端:#define _WINSOCK_DEPRECATED_NO_WARNINGS#include <WinSock2.h>#include <iostream>using namespace std;#pragma comment(lib,"WS2_32")#define PORT 8050void main(){ WSADATA wsadata...原创 2018-06-10 23:29:19 · 1241 阅读 · 0 评论 -
用STL进行字符串的分割与合并
涉及到string类的两个函数find和substr:1、find函数 原型: size_t find ( const string& str, size_t pos = 0 ) const; 功能: 查找子字符串第一次出现的位置。 参数说明:str为子字符串,pos为初始查找位置。 返回值: ...原创 2018-09-13 10:38:12 · 1517 阅读 · 0 评论 -
C++数组简单排序并返回序号
#include<vector>#include<algorithm>#include<iostream>using namespace std;void main() { double d1[10] = { 11, 2, 8, 4, 15, 25, 45, 6, 19, 22 }; double d2[10] = { 0,1,2,3,4,5...原创 2018-09-26 16:23:34 · 5631 阅读 · 0 评论 -
C++通过HTTP请求Get或Post方式请求Python Flask Json数据
参考链接:https://blog.youkuaiyun.com/z550449054/article/details/78683795https://www.cnblogs.com/shike8080/p/6549339.html1、编译Jsoncpp第三方库参考:https://blog.youkuaiyun.com/z550449054/article/details/786840392、C++...原创 2018-11-10 10:53:37 · 1439 阅读 · 2 评论 -
如何在C/C++中使用pi (π) 值
在math.h有一个宏定义M_PI#if defined _USE_MATH_DEFINES && !defined _MATH_DEFINES_DEFINED #define _MATH_DEFINES_DEFINED // Definitions of useful mathematical constants // // Define _...原创 2019-02-19 10:22:29 · 25700 阅读 · 2 评论 -
C++ 变量全局作用域问题(static全局使用)
作为C++的基础,但在使用中经常容易犯错例:a.h文件#include <iostream>using namespace std;extern int aa;int add(int a, int b);static int bb = 9;//static int sum(int a, int b);a.cpp#include <ios...原创 2019-02-19 15:18:03 · 892 阅读 · 0 评论 -
VS内存查看工具对比不同类型变量地址变化
首先按F10进入调试模式,然后打开内存查看里面的值是以16进制输出,因此一个字节需要两个数来表示,例:char型:int型:double型:原创 2018-06-23 10:23:33 · 1426 阅读 · 0 评论 -
unicode和非unicode转换(char转wchar_t)
#include <windows.h>#include <iostream>#include <atlbase.h>#include <comutil.h>#include <atlstr.h>using namespace std;//方法1:MultiByteToWideChar, WideCharToMultiByt...原创 2018-06-12 21:26:22 · 2602 阅读 · 0 评论 -
CString的Format使用注意事项
1、在unicode字符集下#include <iostream>#include <atlstr.h>using namespace std;void main(){ CString str = "ABC"; string ss = "SSS"; const char *p = ss.c_str(); char *p2 = "bbbb"; wc...原创 2018-06-12 23:35:57 · 1818 阅读 · 0 评论 -
托管和非托管的c++区别
托管DLL和非托管DLL的区别。狭义解释讲,托管DLL就在Dotnet环境生成的DLL文件。非托管DLL不是在Dotnet环境生成的DLL文件。 托管DLL文件,可以在Dotnet环境通过 “添加引用” 的方式,直接把托管DLL文件添加到项目中。然后通过 Using DLL命名空间,来调用相应的DLL对象 。 非托管DLL文件,在Dotnet环境应用时,通过 DllIm...原创 2018-05-31 11:20:50 · 3166 阅读 · 0 评论 -
C++如何在release模式下调试
1、右击项目属性,进入C/C++->常规选型,在“调试信息格式”一项选择“程序数据库(/Zi)”,然后在“优化”一栏选择“优化”一项选择“已禁用(/od)”。2、进入链接器,点击“调试”一栏,在“生成调试信息”一项选择“优化以便于调试(DEBUG)”...原创 2018-06-01 09:55:12 · 2413 阅读 · 0 评论