C++知识积累
king3wade
这个作者很懒,什么都没留下…
展开
-
static和const的使用
1、static使用 1、局部变量 1)内存中的位置:静态存储区 2)初始化:局部的静态变量只能被初始化一次 3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。 注:当static用来修饰局部变量的时候,它就改变了局部变量的存储位置(从原来的栈中存放改为静态存储区)及其生命周期(局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,...转载 2019-04-25 23:21:35 · 177 阅读 · 0 评论 -
实现string类
实现string类包含了最基础的C++知识,本文仿照这string类的功能,写了一个自己的string类练练手。肯定还有些东西并未完善,后面再不断去完善。 头文件: #pragma once #include <iostream> using namespace std; struct MyString { MyString(const char *_str = NULL); ...原创 2019-05-04 23:25:39 · 200 阅读 · 0 评论 -
LeetCode第208题--实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert(“apple”); trie.search(“apple”); // 返回 true trie.search(“app”); // 返回 false trie.startsWith(“app”); ...原创 2019-05-31 23:08:05 · 132 阅读 · 0 评论 -
C++多态性(虚函数和虚继承)
多态是由虚函数实现的,而虚函数主要是通过虚函数表(V-Table)来实现的。 如果一个类中包含虚函数(virtual修饰的函数),那么这个类就会包含一张虚函数表,虚函数表存储的每一项是一个虚函数的地址。如下图: 这个类的每一个对象都会包含一个虚指针(虚指针存在于对象实例地址的最前面,保证虚函数表有最高的性能),这个虚指针指向虚函数表。 注:对象不包含虚函数表,只有虚指针,类才包含虚函数表,派生类...转载 2019-06-02 23:50:41 · 380 阅读 · 0 评论 -
用队列实现栈,用栈实现队列
使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 class MyStack { public: /** Initialize your data structure here. */ MyStack() { listA.clear(); l...原创 2019-06-21 23:53:22 · 586 阅读 · 0 评论 -
知识杂谈
指针 1、指针数组和数组指针 例: int arr[10]; int array[3][10]; int *ptr[10]; //ptr是含有10个int *指针的数组 int (*pArray)[10] = &arr; //pArray指向一个含有10个整数的数组 int (&arrRef)[10] = arr; //arrRef引用一个含有10个整数的数组 数组指针一...原创 2019-06-24 00:04:05 · 104 阅读 · 0 评论 -
shared_ptr智能指针的简单实现
shared_ptr是使用引用计数的智能指针,引用计数的智能指针可以跟踪引用同一个真实指针对象的智能指针实例的数目。这意味着,可以有多个shared_ptr实例指向同一块动态分配的内存,当最后一个引用对象离开其作用域时,才会释放这块内存。 本文采用两种方式存储引用计数,一种采用int* 指针存储引用计数,另一种使用map存储。 1、使用int* 指针指向引用计数 template<typen...原创 2019-08-06 00:23:48 · 289 阅读 · 0 评论