【Effective C++ 43,44】教程文章相关的互联网学习教程文章

C/C++难点笔记——难点题和疑惑点【代码】

疑惑点类的转换问题代码:class A{ public:virtualvoidf(){cout << "A" << endl;} };class B: public A{ public:virtualvoidf(){cout << "B" << endl;} };int _tmain(int argc, _TCHAR* argv[]){A* pa = new A();pa->f();B* pb = (B*)pa; pb->f();delete pa,pb;pa = new B();pa->f(); //多态pb = (B*)pa;pb->f(); }下面语句发生什么变化。 B* pb = (B*)pa; 解析:其实什么变化也没有发生,还是输出A,不存在覆盖问题,pb指向pa原来...

poj 1700 Crossing River C++/Java

http://poj.org/problem?id=1700题目大意:有n个人要过坐船过河,每一个人划船有个时间a[i],每次最多两个人坐一条船过河。且过河时间为两个人中速度慢的,求n个人过河的最短时间。思路:贪心。对于每次过河的,有两种情况://最快和最慢过去,然后最快回来。在和次慢过去。最快回来 int action1=a[i-1] + a[0] + a[i-2] +a[0]; //最快和次慢过去,然后最快回来,在次慢和最慢过去,次慢回来 int action2=a[1] +a[0] + a[i-1] +a[...

一次C++调试记录【代码】

之前开发用Linux C比较多,C++中的STL 容器基本没有接触过。最近在学习C++,平时用到c++ 17中的部分新特性,下面就简单分享下自己C++的学习流程。一、环境搭建 本人使用的是CentOS 7系统,该系统默认的g++版本不支持c++17的新特性。所以,首先需要做的就是升级新版本的g++。到ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/网站上选择支持c++17的gcc版本,并使用wget下载到Linux系统中:wget ftp://ftp....

C#将String传入C++的char*

C++的函数参数列表中包含一个char*的输出型参数,然而在C#调用该dll时候,会自动将函数的中的char*参数“翻译”为sbyte*, 使用了各种方法都不能调用函数,主要是不能合适的转换为sbyte*。 1、【项目】->【属性】->【生成】->勾选 【允许不安全代码】2、引入头文件 using System.Runtime.InteropServices;3、string videoName = "ComplexBkg1.avi"; unsafe { IntPtr intPtrStr = (IntPtr)Marshal.String...

c++ 命名空间 以及 作用域 函数参数 面向对象实验报告【代码】

面向对象的分析与设计 实验报告一 一.变量的储存类别auto static register externauto变量 函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声...

c++11 std::thread【图】

c++11 std::threadhttps://blog.csdn.net/zy19940906/article/details/53955684https://blog.csdn.net/zy19940906/article/details/54412600 序?以前虽然也用线程,但没完整试,这次算是各种试一下吧,效率上的测试一是不太好测,二是也时间上不太够,所以效率上的对比没有测试。本篇不提供代码,只是做了各方面诸如互斥量,条件变量的一些简单总结= =。?测试环境:Qt5.7,vs2015。一、std::thread:?如下图所示:(解释一般都是我自...

STL:C++标准容器库deque【代码】

他是一个双向队列,大部分内容和vector基本一致 主要是需要注意它是双向的,可头插,可尾插int main() {deque<Student> deq_stu;deq_stu.push_back(Student("lisi",22));deq_stu.push_back(Student("wangwu",53));deq_stu.push_back(Student("zou",29));//头部插入deq_stu.push_front(Student("ziwen",23));//头部删除 deq_stu.pop_front();vector<Student> vec_stu;vec_stu.push_back(Student("lisi",22));vec_stu.push_ba...

【原创】C++之自定义高效的swap(1)【代码】

1 问题背景 当交换两个包含了指针成员的类,我们最想看到的是直接交换其指针。但是当我们调用std::swap标准库这个模板函数时,通常它都会复制3个指针指向的对象作为交换所用,缺乏效率。如下:1namespace std{ 2 template<typename T> 3void swap(T& a, T& b) //std::swap的典型实现4 { 5 T temp(a); //一次拷贝,两次赋值6 a = b; 7 b = temp; 8 } 9 } 上面的代码,5行的调用了类的拷贝...

C++二级指针第一种内存模型(指针数组)【代码】

二级指针第一种内存模型(指针数组)指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来 指针数组  在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。  例如,一个一维指针数组的定义:int *ptr_array[10]。 如何理解指针数组   指针数组是数组元素为指针的数组,其...

C++ Primer Plus(一)——预备知识

?1.1 C++简介?C++=C语言+面向对象+泛型,C++的编程方式=过程性语言+面向对象语言+泛型编程1.2 C++简史1. 过程性语言首先确定计算及应采取的操作,然后使用编程语言来实现这些操作。2. 结构化编程将分支限定为一组行为良好的结构(for循环、while循环、do while循环和if else语句)3. C语言具有结构化编程和自顶向下的设计原则。4. 面向对象编程的理念是设计与问题的本质相对应的数据格式。在C++中,类是一种规范,描述了这种新型...

android上进行c/C++开发测试(转)

Android C编程技巧运行模拟器  emulator -console  * 将文件写入到模拟器的userdata.img文件中  adb push  *将一个目录拷贝到模拟器中,包括子目录  adb push  * 将一个目录从模拟器中拷出来  adb pull  * 使得模拟器可以运行arm代码.  使用GNU/ARM Linux编译器编译你的应用程序就可以了  * 在模拟器里面运行shell,需要先运行模拟器  adb shell  *运行模拟器中的一个控制台程序  adb shell  *连接模拟...

dev c++与VC assist的杂记

最近要处理一些数据,于是把旧本拿出来用用。但是发现旧本运行速度很慢。分析之后发现是瑞星的老版本程序里面加了游戏的云存储节点的注册表键。果断把该键删了之后,CPU使用率从66%以上降到24%左右。然后就是回到正题。VC6原先习惯使用的VC ASSIST6版本,网上CSDN给的下载还要实名制验证。果断不用CSDN了。想到DEV C++现在已经是CSP的标配,于是找了一下相关的博文。https://www.cnblogs.com/rjgcs/p/5798143.html 原文:https://w...

C/C++顺序数据结构——动态数组测试【代码】

这是一篇顺序表数据结构——动态数组的测试,实现//初始化数组//插入//根据位置删除//根据值删除//查找//打印//释放动态数组的内存//清空数组//获得动态数组容量//获得动态数组当前元素个数//根据位置获得某个位置的元素话不多说 上代码!!!//DynamicArray.h#pragma once #ifndef DynamicArraytypedef struct DynamicArray {int size;//当前数组有多少个元素int capacity; //数组的容量int *pArray; //数据存放的地址}DynamicA...

dev c++必须修改的三处默认设置【图】

此文档记录参加pat考试并且以dev c++【针对5.11版本】软件作为开发工具时,必须修改的三个默认设置。1.修改默认语言标准Dev C++ 5.11 版本支持较新的 C 和 C++ 标准,但是默认没有开启。2.产生调试信息3.代码提示默认的代码提示快捷键是【CTRL+SPACE】,但是该快捷键很容易和切换输入法冲突,修改为【CTRL+ENTER】这样的话,如果考场记不到库函数是怎么写的,可以很方便的用这个快捷键提示,确保自己没有输错。原文:https://www.c...

C++ 必知必会:条款16 指向成员函数的指针并非指针【代码】

这一点与指向成员的指针类似,其实现可能更加复杂,因为成员函数同时还存在虚拟函数,需要动态绑定执行动作。当然这种属性是属于函数本身的,此处表达的是指针不涉及函数的属性问题。 1: class shape 2: { 3: public: 4: // void moveTo(point newLocation); 5: bool validate(); 6: //… 7: } 8: 9: class circle:: public shape 10: { 11: public: 12: //… 13: bool draw() const; 14: ...