【C++刷题经验】教程文章相关的互联网学习教程文章

C++开发ActiveX控件相关事项

1.UUID值: XXXX.idl最下部:// CMsgPromptCtrl 的类信息[uuid(84045072-8AA6-40D2-A641-0097F7F6650F)]coclass MsgPrompt{[default] dispinterface _DMsgPrompt;[default, source] dispinterface _DMsgPromptEvents;}; 2.安全代码: 在XXXCtrl.h中添加 #include <objsafe.h> //安全代码DECLARE_INTERFACE_MAP() BEGIN_INTERFACE_PART(ObjSafe, IObjectSafety) STDMETHOD_(HRESULT, GetInterfaceSafetyOptions) ( REFIID riid, D...

JNI java 调c++动态库函数,多值回传及乱码问题

一,JNI java 调c++动态库函数的问题 1.多参数回传 2.参数传递出现乱码 二,解决 1.使用byte[]数组传入c++,在生成的头文件里就会变成jbyteArray 类型 例如,java 中参数:byte[]account,头文件里参数变成jbyteArray account, 通过c++修改完account的值后,java要获取该值,直接使用 jbyte* jbAccount = (env)->GetByteArrayElements(env, account, 0); char* szAccount = (char*)jbAccount; 指针的地址并不是account的地址,最后赋...

linux gdb调试C/C++多线程死锁的定位【代码】【图】

#include <thread>2 #include <iostream>3 #include <mutex>4 using namespace std;5 mutex _mutex1;6 mutex _mutex2;7 int date1;8 int date2;9 int do_work_1()10 {11 cout << "thread_1 start" << endl;12 lock_guard<mutex> locker1(_mutex1);13 date1++;14 this_thread::sleep_for(chrono::seconds(1));15 lock_guard<mutex> locker2(_mutex2);16 date2++;17 cout << "thread_1 end" << endl;18...

例如找出令人信服的权威C++中间malloc与new

例如找出令人信服的权威C++中间malloc与new 问题: 非常多人都知道malloc与new都是用来申请空间用的,开辟空间来源于堆中。可是在C++中却非常少用malloc去申请空间,为什么? 以下小编会以一个非常有说服力的样例来说明。相信大家一看就能明确。 C++程序的格局可分为4个区,注意是“格局”, 1、全局数据区 //当中全局变量,静态变量是属于全局数据区 2、代码区 //全部的类和非成员函数的代码都存放在代码区 3、栈区 ...

linux下c/c++方式访问curl的帮助手册

自:http://blog.chinaunix.net/u1/47395/showart_1768832.html有个业务需求需要通过curl 代理的方式来访问外网百度了一把,测试可以正常使用。记录下来方便后续查找 example: 1. http://curl.haxx.se/libcurl/c/example.html 2. http://www.libcurl.org/book: 1. http://www.linuxdevcenter.com/pub/a/linux/2005/05/05/libcurl.htmlothers: http://www.haxx.se/curl.html http://curl.haxx.se/lxr/source/docs/examples/==...

C++ 虚函数表与多态 —— 使用继承 & 多重继承的虚函数表【代码】【图】

1. 使用继承的虚函数表:每个类只有1个虚函数表,当子类继承父类后,子类可以自己改写和新增虚函数,如下图所示: 子类重写 func_1 后,子函数的 func_1 将会有新的逻辑,不会干扰到父类;子类新增行的 func_4 方法后,父类无法访问到该方法。 如下代码: 1 #include <iostream>2usingnamespace std;3 4class Father5{6public:7virtualvoid func_1() { cout << "Father::func_1" << endl; }8virtualvoid func_2() { cout << "Fathe...

visual studio code(vscode) 配置在terminal进行运行代码并且支持c++11特性【代码】【图】

1.点击设置点击CodeRunner的小齿轮,点击configure extension settings2.点击映射点击executor map中的Edit in settings.json3.粘贴代码粘贴如下代码,按下command + s 进行保存{"code-runner.runInTerminal": true,"C_Cpp.default.cppStandard": "c++11","code-runner.executorMap": {"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++11 && $dir$fileNameWithoutExt"},"files.associations": {"typeinfo": "cpp...

41. First Missing Positive(C++)【代码】

Given an unsorted integer array, find the first missing positive integer.For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2.Your algorithm should run in O(n) time and uses constant space. Solution:class Solution { public:int firstMissingPositive(vector<int>& nums) {for(int i=0; i<nums.size(); i++){if(i+1==nums[i]) continue;int x = nums[i];while(x>=1 && x<=nums.size() && x!=nums[x-1]){swap(...

结合C++和GDAL实现shapefile(shp)文件的创建和写入【代码】【图】

工具:vs2012+GDAL 2.0包含头文件:#include "ogrsf_frmts.h"int main() { constchar *pszDriverName = "ESRI Shapefile";GDALDriver *poDriver;GDALAllRegister();poDriver = GetGDALDriverManager()->GetDriverByName(pszDriverName );if( poDriver == NULL ){printf( "%s driver not available.\n", pszDriverName ); return0; }GDALDataset *poDS;poDS = poDriver->Create("d:/newShp.shp", 0, 0, 0, GDT_Unknown, NULL )...

C++中四种强制类型转换方式【代码】

类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些。还有一个缺点就是,c风格的转换不...

C/C++之文件打开方式差别【图】

一、引言在上一篇中,需要获取文件的大小,但是获取的文件大小与从文件中读取的数据大小总是对不上(10行数据,文件大小是129,但是读取数据是119),因此,实现的服务器总是出现这个错误:net::ERR_CONTENT_LENGTH_MISMATCH二、原因造成这个错误的原因是,获取文件大小时,是使用seekg函数,而它是安字节来跳转读取位置的,但是读取文件时,我却使用了以文本打开的方式来读取文件。而以文本的方式读取文件时每个平台是会对行结束符...

C++异常处理

一、什么是异常  能预见但无法避免的错误。二、如何抛出异常  throw 数据:  a、可以抛出基本类型的异常    throw -1;    throw "我是异常"  b、可以抛出类类型的异常    throw Student stu;  注意:不要抛出局部对象的指针的异常  注意:如果抛出了异常程序没有捕获,程序会死亡三、如何捕获异常  try{    //可能会产生错误的代码  }  catch(数据类型1)  {    //异常处理代码1  }  ...

C/C++使用MySQL【代码】

一直找不到关于C/C++连接Mysql数据库的详细api书籍和网站,刷了下网页,找到一篇Linux 下C/C++连接数据库的博客,留着以后自己用。  首先需要编译、安装MySQL,安装完成后,将MySQL目录中的lib目录添加到环境变量中。新建C/C 工程,把$MYSQL_ROOT/include添加到编译环境的包含路径下面。在编译选项中,增加$MYSQL_ROOT/lib目录。在Link选项中增加-lmysqlclient(已经把lib目录增加到系统环境变量中),或者直接引用libmysqlclie...

关于C++中的内存泄露【代码】

1.c++内存泄漏的定义:内存泄漏(memory leak)是指由于疏忽或错误造成了程序未能释放掉不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。2.内存泄漏的后果:最难捉摸也最难检测到的错误之一是内存泄漏,即未能正确释放以前分配的内存的 bug。 只发生一次的小的内存泄漏可能不会被注意,但泄漏大量内存的程序或泄漏日益增多的程序...

C++入门经典-例6.15-通过字符串函数连接两个字符数组【代码】【图】

1:代码如下// 6.15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> usingnamespace std; void main() {char str1[50], str2[30], *p1, *p2;p1 = str1;p2 = str2;cout << "please input string1:" << endl;gets_s(str1);cout << "please input string2:" << endl;gets_s(str2);strcat_s(str1, str2);//对字符串也行,对数组也行cout << "the new string is:" << endl;puts(str1); }View Code运行...