C++
Fce'
这个作者很懒,什么都没留下…
展开
-
C++ 容器迭代器失效
recently面试被问到迭代器失效,今天就对迭代器相关进行总结。首先看一个小例子:void testInsert() { vector<int> v; int word; auto iter = v.begin(); while (cin >> word) iter = v.insert(iter, word);//依次将元素插入最前端 cout<<v.front(); return;}看一下in原创 2020-12-20 20:40:40 · 179 阅读 · 0 评论 -
Leetcode C++二维数组初始化问题
leetcode 二维数组初始化问题发现可以用如下语句初始化二维数组int dp[m][n];存疑,待解答原创 2020-12-03 23:09:30 · 415 阅读 · 0 评论 -
C++ 模板类成员在派生类中的调用
以从Graph类派生出的UndiGraph类为例:class Graph//基类{protected: int maxVertexes; int Vertex_num; int Edge_num; bool Weight; bool Directed; bool Vertex_value; public: //static const E maxWeight = INF; Graph(int size = 30); Graph(const原创 2020-10-06 21:24:27 · 322 阅读 · 0 评论 -
C++ const成员函数
Const关键字const可以用于替换#define使用宏定义可能并不会加入记号表(symbol table)例如:#define PI 3.14159const double Pi = 3.14159;而对于const与指针同时出现的情况:如果const在’ * ’ 左侧,则被指物为常量;如果const在’ * '右侧,则指针本身为常量;如果出现两次,则都为常量。const TreeNode* root;//TreeNode const * root;//exactly the sam原创 2020-08-18 11:26:43 · 393 阅读 · 0 评论 -
C++ 函数与二维数组
将二维数组作为参数的函数,数组名被视为地址,所以形参就应该是一个指针。sum(int arr[][4],int size);sum(int (*arr)[4],int size);以上这两种表示方式是相同的int *arr[4]表示的是由4个指向int的指针组成的数组,而不是由一个指向4个int组成的数组的指针。因此括号是很必要的。同样我们能看出,arr都是指针而非数组,是由4个int组成的数组。函数参数中的指针类型指定了数组的列数,因此sum()函数只能接受由4列组成的数组,但是长度却是原创 2020-06-16 23:07:03 · 558 阅读 · 0 评论 -
C++运算符重载——重载限制 及 重载输出类对象
使用运算符时,不能违反原来的语法规则,不能修改优先级sizeof运算符.*?:::等运算符不能重载。= () [] ->只能重载为成员函数。在上一节基础上Time Time::operator-(const Time& t)const { int tot1, tot2; tot1 = t.minutes + t.hours * 60; tot2 = minutes + hours * 60; Time diff(abs(tot2 - tot1) / 60, abs(原创 2020-06-13 21:04:26 · 478 阅读 · 0 评论 -
C++运算符重载——以时间类为例
计算时间,记录运算符重载例子,声明定义分离注: template class一般不建议将声明和定义分离,否则要include实现文件才能正常使用非静态成员函数后面加const关键字,用来限定“this”指针为const,唯一例外是被mutable修饰的成员变量(后续再提)。mytime.h 代码#pragma once#ifndef MYTIME_H_#define MYTIME_H_class Time {private: int hours; int minutes;public:原创 2020-06-10 17:16:00 · 763 阅读 · 0 评论 -
C++ 模板类成员调用 this指针
在C++中如果父类是模板类,直接调用父类成员的话,会报错找不到该变量,其根本原因是因为模板的二次编译机制导致的。其父类的声明template <typename T>class SeqLis...转载 2020-06-03 13:32:37 · 1197 阅读 · 0 评论