【《Effective C++》笔记:II】教程文章相关的互联网学习教程文章

C++字符串指针与字符数组的区别【代码】

今天发现这样一个问题#include <iostream> usingnamespace std; int main() { char ch1[10];strcpy_s(ch1,"123456");//编译通过char* p = newchar[10];strcpy_s(p,"123456");//报错:不接受2个参数 }改成如下所示就没有问题:strcpy_s(p,10,"123456");//编译通过为什么会这样呢?先看下字符数组与字符串指针的区别:1.由双引号括起来的字符串常量属于静态存储类型,它被存储在内存的静态存储区内,所以无论字符串常量出现在程序的什...

C/C++的指针经典面试题

a) 一个整型数(An integer) b)一个指向整型数的指针( A pointer to an integer) c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r d)一个有10个整型数的数组( An array of 10 integers) e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers) f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers) g)...

统计学习方法 --- 感知机模型原理及c++实现【代码】【图】

参考博客 Liam Q博客 和李航的《统计学习方法》感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而求出感知机模型。感知机模型是神经网络和支持向量机的基础。下面分别从感知机学习的模型、策略和算法三个方面来介绍。1. 感知机模型 感知机模型如下:f(x)= sign(w*x+b) 其中,x为输入向量,sign为符号函数,括号里面大于等于0,...

C++ 内存对齐

博客地址:http://www.cnblogs.com/TenosDoIt/p/3590491.html原文:http://blog.csdn.net/tenosdoit/article/details/20860589

C++随机数生成【代码】【图】

标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。 #include <ctime>; #include <iostream>; usingnamespace std;void main(){srand((unsigned)time(0));for(int i=0; i<6; i++){int r = rand()%6;cou...

你懂得C,所以C++也不在话下【代码】

前言:C++最初诞生时,仅仅被称作带类的C。这说明C和C++是一衣带水的关系,随后C++扩充了很多特性,成为了面向对象的一个语言,真正成了扛把子。那么C++有什么优势呢?举个例子类比,一个C代码项目就像是一个冰柜,所有的东西都装在一块,且不说会不会“窜味儿”,看起来很没条理。而C++就像是一个冰箱,有冷藏室冷冻室,冷藏室还有放鸡蛋的地方,放蔬菜的地方...当然这只是其中最早的一个好处:封装性。但是C语言没法写出C++的特性...

C++尊重返回值

尊重返回值,一定要对返回值的有效性进行判断,保证程序正确执行。常用技巧:1.指针判空 使用NULL去比较。 StAppConfig * m_pAppCfg = StAppConfig::getInstance(); if (NULL == m_pAppCfg) {  return -1; }2. 整数类型(byte, short, int, int64包括其无符号类型) 使用数值去比较。例如正确==0 错误==-1 int iRet = StAppConfig::xxxx();if(0 != iRet){  return -1;} 3. 布尔类型bool,通常以真假判断例1:bool bRet =...

[转]《深度探索C++对象模型》读书笔记[一]

前 言 Stanley B.Lippman1. 任何对象模型都需要的三种转换风味:ü 与编译器息息相关的转换ü 语言语义转换ü 程序代码和对象模型的转换 2. C++对象模型的两种解释ü 语言中直接支持面向对象程序设计的部分ü 对于各种支持的底层实现机制 3. C++ class的完整virtual functions在编译时期就固定下来了,程序员没有办法在执行期动态增加或取代其中某一个。这使得虚拟函数调用操作得以有快速的...

C++多态【代码】

多态概念:不同的对象去完成时会产生处不同的状态定义与实现: class Person { public: virtualvoid BuyTicket() { cout << "买票-全价" << endl;} };class Student : public Person { public: virtualvoid BuyTicket() { cout << "买票-半价" << endl; } /*注意:在重写基类虚函数时,派生类的虚函数在不加virtual关键字时,虽然也可以构成重写(因为继承后基类的虚函数被继承下来了在派生类依旧保持虚函数属性),但...

Mac上利用VScode配置c/c++开发环境【代码】

Mac上利用VScode配置c/c++开发环境哭辽,Typora里面最好不要插入表情,不然保存会闪退首先你要有一个vscode在扩展里面下载c/c++第一步?+com+p 打开命令模式:选择c/c++: 编辑配置(edit configuration) 然后再自动生成的.vscode目录,打开c_cpp_properties.json。利用老哥的文件示例:{"configurations": [{"name": "Mac","includePath": ["${workspaceFolder}/**", "/Library/Developer/CommandLi...

面试题62:圆圈中最后剩下的数字(C++)【代码】【图】

题目地址:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/题目描述0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。题目示例示例 1:输入: n = 5, m = 3 输出: 3 示例 2:输入: n = ...

c++优先队列(priority_queue)用法详解【代码】

既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的  和队列基本操作相同:    top 访问队头元素    empty 队列是否为空    size 返回队列内元素个数    push 插入元素到队尾 (并排序)    emplace 原地构造一个元...

c和c++写控制台程序时出现闪退的情况

在用c和c++写控制台应用程序时,很多时候会遇到闪退的情况,比如用vs2013或者其他的编译工具,一般的处理方式有以下两种: 1、在main()函数中,return之前写下 system("pause");//表示暂停 2、非调试状态下运行,直接按按Ctrl+F5;如果按F5调试的话,就会出现一闪而过的情况,但该方法不适用于生成的exe文件; 3、 给程序加一个任务,即定义一个内联函数 inline void keep_window_open(char ch;cin>>ch;),然后在mi...

visual studio C++ 手工管理头文件包含路径的方法【图】

这里以VS2010为例,说明如何通过自定义项目属性来手工管理VC++目录。第一步:打开一个VC++工程。第二步: 选择视图菜单下的属性管理器。第三步:右键点击我们的工程,选择“添加新项目属性表”。第四步:输入自己想好的名字,注意目录不要修改,建议放到自己的工程目录下,这个是默认的。第五步:点击添加,回到我们的工程目录,应该能找到bt.props这个文件。第六步:用编辑工具打开这个文件,它是一个xml文件,可以自己选择好用的...

C++引用作为函数的参数【代码】

引用也可以作为一个函数的参数,如:我们定义交换两个数的函数swap,将函数的参数定义成引用的形式:1void swap(int &p1, int &p2) //此处函数的形参都是引用2{ 3int p; 4 p=p1; 5 p1=p2; 6 p2=p; 7 }   为了在程序中调用该函数,在相应的主调函数的调用点处直接以变量作为实参进行调用即可,而不需要对实参变量有任何的特殊要求。如上面定义的swap函数的主调函数可写为: int main() {int a,b;cin >> a >> b; ...