- 博客(20)
- 资源 (7)
- 收藏
- 关注
转载 类gslice和类模板gslice_array
gslice: 是general slice的简称。。3个属性:和slice类似,起始索引,元素数量,元素间距。但是他的元素数量和元素间距也是数组。元素个数与维度相同。gslice可以处理一维数组,二维数组,和三维数组gslice_array 为gslice切割的子集的类型gslice类 构造函数:gslice();gslice( std::size_t start, const std::...
2018-04-25 15:15:21 699
转载 类mask_array
valarray类提供了一种描述子集的方式: 屏蔽子集。valarray类经过“屏蔽”处理后,返回结果为valarray<bool>型将“屏蔽”作为下标,值为true的位表明了对应的valarray数组中的元素将作为结果的一部分。和slice_array一样,mask_array不能有程序开发者构造和复制。屏蔽的valarray的元素的个数不能多于valarray的元素个数。【mask...
2018-04-25 15:03:51 334
转载 indirect_array类
选择任意下标的数组数据进行运算间接数组子集也是创建数组子集的一种方式,还可以任意排列元素。 这是第四种方法。 1. indirect_array是将valarray<size_t>用作valarray数组下标产生的子集。 2. 下标要小于valarray元素的个数例子://-----------------省略----------------valarray<int> ...
2018-04-25 15:02:29 468
转载 slice_array
2.数组子集类—slice类和类模板slice_arrayslice是切割的意思,即将一个向量作为任意维度的数组来处理。“切割”操作是在一个valarray中,中间距离为n的多个元素。slice的跨步是切割两个元素的距离(间隔的下标个数)1.slice类std::slice 是选择器类,一个 std::slice 类型的对象保有三个值:起始下标,跨度,及子集中的值的总数。std::slice 类型...
2018-04-25 13:32:58 355
转载 c++数组:内置数组,可变大小数组vector,固定大小数组array,固定大小数值优化数组valarray
创建数组,是程序设计中必不可少的一环。我们一般可以有以下几种方法来创建数组。一、C++内置数组数组大小固定,速度较快通用格式是:数据类型 数组名[ 数组大小 ];如 int a[40];//一维数组 int a[5][10];//二维数组二、vector创建数组包含多种通用算法长度可变,使用灵活,但效率稍低vector是使用 new 和 delete 来管理内存的[cpp] view pla...
2018-04-24 15:53:22 2846
转载 std::map排序的原理(这篇文章告诉我们多看看vs源码)
今天被同事问到一个问题,map中第三个参数的意思是什么,于是写了下面这个程序测试了一下。[cpp] view plain copy print?#include <map> #include <iostream> using namespace std; typedef map<int,char> icMap; typedef map<int,...
2018-04-23 18:49:52 1343
原创 dynamic_cast转换类指针时,基类需要虚函数
虚函数对于dynamic_cast转换的作用 为何使用dynamic_cast转换类指针时,需要虚函数呢。Dynamic_cast转换是在运行时进行转换,运行时转换就需要知道类对象的信息(继承关系等)。如何在运行时获取到这个信息——虚函数表。 C++对象模型中,对象实例最前面的就是虚函数表指针,通过这个指针可以获取到该类对象的所有虚函数,包括父类的。因为派生类会继承基类的虚函数表,所以通过这个...
2018-04-20 19:41:46 2898 1
转载 C++ 模板专门化
1.模板特化的定义C++中的模板特化不同于模板的实例化,模板参数在某种特定类型下的具体实现称为模板的特化。模板特化有时也称之为模板的具体化,分别有函数模板特化和类模板特化。1.1函数模板特化函数模板特化是在一个统一的函数模板不能在所有类型实例下正常工作时,需要定义类型参数在实例化为特定类型时函数模板的特定实现版本。查看如下例:123456789101112131415161718#include ...
2018-04-20 10:27:14 1464
转载 模板参数自动推导
转载自https://www.cnblogs.com/zwvista/p/7748363.html目录模板参数自动推导示例自定义类模板中的应用Automatic deduction guides(自动推断向导)模板参数自动推导在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写1std::pair a{1, "a"s}; // C++17而只能写1st...
2018-04-20 10:13:35 901
原创 Error: Flash Download failed - Target DLL has been cancelled
STM32下载时错误Error: Flash Download failed - Target DLL has been cancelled错误解决办法:Options for Target--Debug--选ST-Link DebuggerOptions for Target--Utilities--选ST-Link Debugger注意两个都要设置一遍...
2018-04-09 09:37:46 37932 5
原创 Could not open file ..\output\core_cm3.o: No such file or directory
编译到 core_cm3.c 文件的时候就出错了,错误信息是..\Output\STM32-DEMO.axf: error: L6002U: Could not open file ..\output\core_cm3.o: No such file or directory 一编译到core_cm3 keil就开始报错万恶的中文用户名导致找不到路径,解决方法计算机右键-属性-高级系统设置...
2018-04-09 08:56:09 17314 9
转载 typedef typename 作用
转载自:https://blog.csdn.net/zhangxiao93/article/details/50569924C++ typedef typename 作用C++的一些语法让人看着费解,其中就有:typedef typename std::vector<T>::size_type size_type;详见《C++ Primer》(第五版)P584 有些不懂的语法有时候虽然...
2018-04-08 15:54:36 169
转载 static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
转载自:http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。宽化转换(如char到in...
2018-04-07 21:50:45 117
原创 从类内存看虚表
结合https://blog.csdn.net/oyhb_1992/article/details/79841978文章看情形一:单继承,派生类中只有一个虚表#include "stdafx.h"using namespace std;#include <iostream>// 基类Aclass A{public: int dataA; virtual void fo...
2018-04-07 16:03:53 220
转载 虚表、多态
转载自:http://www.cnblogs.com/malecrab/p/5572730.html1. 概述简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。例:其中:B的虚函数表中存放着B::foo和B::bar两个函数指针。D的虚函数表中存放的既有继承自B的虚函数B::foo,又有重写(override)...
2018-04-07 15:30:53 141
转载 dynamic_cast
dynamic_cast运算符的主要用途:将基类的指针或引用安全地转换成派生类的指针或引用,并用派生类的指针或引用调用非虚函数。如果是基类指针或引用调用的是派生类虚函数无需转换就能在运行时调用派生类的虚函数。前提条件:当我们将dynamic_cast用于某种类型的指针或引用时,只有该类型含有虚函数时,才能进行这种转换。否则,编译器会报错!dynamic_cast运算符的调用形式如下所示:dynam...
2018-04-07 10:11:15 1985
原创 多路径继承和访问权限、访问歧义
在一个派生类里,如果一个名字或基类的可以从多条继承达到,那么若有一条路径可以访问,他就可以访问。情形1:虚继承访问爷爷类Public成员#include "stdafx.h"using namespace std;/**虚继承两条路径访问爷爷类数据成员*/#include <iostream>// 基类Aclass A{public: int dataA;};...
2018-04-03 23:14:50 192
转载 C++友元
我们在学习类的时候,只有类的成员函数可以访问类的非公有数据成员。而C++,提供了友元机制,允许一个类将其非公有成员的访问权授予指定的函数或类。友元的声明只能出现在类定义的内部的任何地方,一般我们将友元的声明放在类定义的开始或者结尾。由于友元不是授予友元关系的那个类的成员,所以它们不受访问控制的影响。友元可以是普通的函数,或者其它已定义的类的成员函数,又或是整个类。将一个函数设为友元,该函数被称...
2018-04-03 09:26:42 624
转载 C++中虚继承的作用及底层实现原理
虚继承和虚函数是完全无相关的两个概念。虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝。这将存在两个问题:其一,浪费存储空间;第二,存在二义性问题,通常可以将派生类对象的地址赋值给基类对象,实现的具体方式是,将基类指针指向继承类(继承类有基类的拷贝)中的基类对象的地址,但是多重继承可能存在一个基类的多份拷贝,这就出现了二义性。虚继承可以解决多种继承前面提...
2018-04-02 19:31:45 266
转载 从内存布局看C++虚继承的实现原理
转载自:http://blog.csdn.net/xiejingfa/article/details/48028491准备工作1、VS2012使用命令行选项查看对象的内存布局微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout。使用方法很简单,直接在[工具(T)]选项下找到“Visual Studio命令提示(C)”后点...
2018-04-02 19:27:22 186
Oracle goldengate 从入门到精通 15课.rar
2021-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人