
C++
文章平均质量分 62
piyixia
这个作者很懒,什么都没留下…
展开
-
c++类模板
#include"Head.h"template<typename T,typename Y>class CFatehr{public: T a; Y b; void show();};//template<typename T,typename Y> 如果使用这种,则需要将int char,换为T Yvoid CFatehr<int,char...原创 2019-04-13 22:03:35 · 88 阅读 · 0 评论 -
c++双向链表
#include<iostream>using namespace std;struct Note{ Note *Prev; Note *Next; int m_iData;};class MyListNote{public: Note *m_pHead; Note *m_pTail; //判断链表是不是空 bool isEmpty() { return...原创 2019-03-03 21:54:40 · 135 阅读 · 0 评论 -
c++实现字符串
#include"Head.h"#include<assert.h>#include<string>char *_strcpy(char *dst, const char *src){ assert(dst != NULL&&src != NULL); char *ret = dst; while ((*dst++ = *src++) !...原创 2019-03-11 10:02:57 · 248 阅读 · 0 评论 -
c++实现Vector
//Vector.hextern const double uZero;class Vector3{ float x, y, z;public: Vector3() { x = 0; y = 0; z = 0; }; Vector3(float x1, float y1, float z1) { x = x1, y = y1, z = z1; } Vector3 operato...原创 2019-03-11 10:07:05 · 387 阅读 · 0 评论 -
面向对象的设计思想
面向对象由:类和对象构成类:具有相同的属性和对象的集合,是抽象的,把一个物体抽象出来,类似于说明书,对象:类的实体化,是类的事例,一个类可以创建很多对象,这些对象有相同的属性特点:封装,继承,多态封装:具有三种访问权限,公开 public,保护protected,私有的private继承:单继承,多继承,子类继承父类,可拥有父类的功能,菱形继承,可用虚继承解决问题多态:一个...原创 2019-03-12 09:59:41 · 247 阅读 · 0 评论 -
三种常用的STL
<1>vector容器vector容器是一个动态数组的结构,在内存中有一个指针指向一块连续的内存。类似数组结构一样。它的特点支持随机访问数据,因为其在内存中的单元是连续。如此之外,还可以vector的大小是可以自动增长的。当向一个vector中继续存放数据的时候,如果当前的内存大小不够,内核会重新生成一个是原来两倍的大小的单元,之后 将数据从原先的单元中拷贝至新创建的单元...转载 2019-03-12 23:39:39 · 322 阅读 · 0 评论 -
STL
顺序容器:vector :vector 向量容器,底层是由数组实现的。list :list 双向链表容器,底层由双向链表实现dequn :deque 双端队列容器,底层用双端队列实现关联容器(1)map: 映射表<key,value> 底层也能用哈希表实现。根据key排序map不允许有两个相同的键值。multimap允许有相同的键值。不可以通过迭代器修改map的...原创 2019-03-13 17:55:43 · 105 阅读 · 0 评论 -
c++中assign
assign方法可以理解为先将原字符串清空,然后赋予新的值作替换。返回类型为 string类型的引用。其常用的重载也有下列几种:a. string& assign ( const string& str );将str替换原字串的内容举例:string testassign = "Hello World";testassign.assign("Goho...原创 2019-03-14 22:19:33 · 7733 阅读 · 0 评论 -
队列与栈的异同点
栈和队列的异同:栈和队列都是线性表,都是限制了插入删除点的线性表(或者说是控制了访问点的线性表) 共同点:都是只能在线性表的端点插入和删除 不同点: 栈的插入和删除都在线性表的同一个端点,该点通称栈顶,相应地,不能插入删除的另一个端点通称栈底,其特性是后进先出 队列在线性表的表头插入,表尾删除,表头一般称队头,表尾一般称队尾,其特性是先进先出 相同之处:n个(同类)...转载 2019-03-15 09:37:02 · 5894 阅读 · 0 评论 -
跨类传递数值
struct MapItemData{ std::string textureName; //图片名字 std::string title; //标题 int hitValue; //战斗力 bool isLock; //是否上锁};class MapListModel : public Ref{public: MapListModel(); ~MapLi...原创 2019-03-19 22:51:43 · 245 阅读 · 0 评论 -
char*,const char*和string的相互转换
好久没写东西啦,发表学术文章一篇,hiahia~近日和小佳子编程时遇到很多转换问题,很麻烦,在网上查了很多资料。为了以后查找方便,特此总结如下。如果有不对的地方或者有更简单的方法,请指出~~1. string转const char*string s = "abc";const char* c_s = s.c_str();2. const char*转stri...转载 2019-03-24 22:22:09 · 3896 阅读 · 0 评论 -
new创建对象,对象保存在堆还是栈?
new创建对象,对象保存在堆还是栈?-->堆内存是用来存放由new创建的对象和数组,即动态申请的内存都存放在堆内存-->栈内存是用来存放在函数中定义的一些基本类型的变量和对象的引用变量例子:局部变量存放在栈;new函数和malloc函数申请的内存在堆;函数调用参数,函数返回值,函数返回地址存放在栈堆和栈的区别1、栈区(stack)—由编译器自动分配释放...转载 2019-03-30 09:09:26 · 8570 阅读 · 1 评论 -
c++中拷贝构造函数
#include"Head.h"class CStu{public: CStu() { } CStu(const CStu&) { }};int main(){ CStu stu1; /*以下4种会调用拷贝构造函数 CStu stNew(stu1); CStu stNew = stu1; CStu stNew = CStu(stu1); CSt...原创 2019-04-05 13:01:58 · 2622 阅读 · 0 评论 -
c++运算符重载类外重载
1.在类的外部定义class CStu{public: int a; CStu() { a = 12; } };void operator+(CStu& stu, int a) //加引用就不会调用拷贝构造函数{ cout << stu.a + a << endl;}int main(){ CStu stu1; i...原创 2019-04-05 23:31:46 · 3819 阅读 · 0 评论 -
c++运算符类内重载,
class CStu{public: int a; CStu() { a = 12; } int operator+(int b) //向比如类外定义,在类内中不需要在定义类的对象,因为类内中,直接可以理 解为,已经存在了 { return a + b; }};int main(){...原创 2019-04-06 00:26:57 · 683 阅读 · 0 评论 -
运算符重载,输出与输入
#include"Head.h"class CStu{public: int a; CStu() { a = 12; } /*int operator<<(ostream &os) //重载输入输出只能在类外,不然无法调用 { os << th...原创 2019-04-06 00:44:55 · 281 阅读 · 0 评论 -
c++需要在类内重载的运算符
在类中重载的运算符有:(),->,[],=,4种,这里我用一种,其他都差不多了class CStu{ int a; int b; int c; int d;public: CStu() { a = 12; b = 13; c = 14; d = 15; }int & operator[](int c) { switch (c) {...原创 2019-04-06 15:17:11 · 1795 阅读 · 0 评论 -
c++函数模板,普通函数及特殊函数模板的优先级
#include"Head.h"//1.优先级为3template<typename T>void fun(T a){ cout << a << endl;}//2.优先级为2,特殊化的模板,可用于类的模板特殊化template<> void fun<int>(int a){ cout << a <...原创 2019-04-13 21:05:25 · 549 阅读 · 0 评论 -
C++函数模板template
#include<iostream>using namespace std;template<typename T>T max(T a, T b, T c){ if (b > a)a = b; if (c > a)a = c; return a;}int main(){ int i1 = 10, i2 = 20, i...原创 2018-07-17 15:42:43 · 258 阅读 · 0 评论