C++总结
@眼里有星河
做一个帅气的工程师
展开
-
C++单向链表的学习
单向链表单向链表的创建#pragma once#include<initializer_list>#include<iostream>#ifndef _LISTNODE_Hstruct ListNode{ int value; ListNode* next;///这里的成员是一个next指针,代表指向下一个节点 ListNode() :value(0), next(nullptr) {} ListNode(int x) :value(x), next(null原创 2020-10-06 22:26:42 · 154 阅读 · 0 评论 -
关于mutimap中hashtable的应用
在hash_table中key值设置为自定义的类型#ifndef _PERSON_H#define _PERSON_H#include<string>class indentityHashCode;class person{public: person(const std::string& l = " ", const std::string& r = " ") :firstname(l), lastname(r) {} std::string firstnam原创 2020-08-02 09:55:17 · 122 阅读 · 0 评论 -
利用iterator_traits实现STL的distance
利用iterator_traits获得迭代器的类型#ifndef _DISTANCE_H#define _DISTANCE_Htemplate<typename Raiterator>typename std::iterator_traits<Raiterator>::difference_typeDistance(Raiterator pos1, Raiterator pos2,std::random_access_iterator_tag){ return pos2原创 2020-07-26 18:09:45 · 93 阅读 · 0 评论 -
STL中关联式容器的compare
关联式容器排序准则(执行期指定)#ifndef _COMPARE_H#define _COMPARE_H#include<algorithm>#include<string>#include<iostream>#include<iomanip>class RuntimeStringCmp{ public: enum cmp_mode { normal, nocase }; RuntimeStringCmp(const cmp_m原创 2020-07-25 17:00:42 · 272 阅读 · 0 评论 -
C++中关于组合型仿函数的笔记
组合型仿函数今天主要是对组合型仿函数进行了详细的总结,在C++的STL算法中,存在很多的算法通过对容器(vector、list、deque(顺序容器)、map、set(关联式容器))等的迭代器(iterator)进行一定的操作,可以达到效率和代码架构的一个整体优化。但是在C++中存在很多的算法只能使用一元谓词或者二元谓词。在很多情况下,想通过某些算法对容器上的进行二元操作,但是在该算法只能使用一元谓词时,可以通过使用“一元组合函数配接器”和“二元函数配接器”。下面是实现的两种组合型仿函数的具体代码:#原创 2020-07-22 22:11:48 · 75 阅读 · 0 评论 -
多类型多参数模板函数C++
多类型多参数通过解析类型不断地回调函数void print() {}template<typename FirstArgs, typename ...Args>void print(const FirstArgs& value, const Args&... package){ std::cout << value << std::endl; print(package...);}template<typename First原创 2020-07-18 19:46:19 · 1815 阅读 · 0 评论 -
C++自己定义并且实现一个简单的vector类模板
C++STL本身已经继承到很多模板,例如:向量模板:vector, list… 关联式容器: set, map等等。最近关于向量容器,自己动手实现了一下类似向量容器vector的一个简单实现。话不多说,直接上代码。#ifndef _MYVECTOR_H#define _MYVECTOR_H#include<iostream>#include<memory>#include<utility>template <typename T>class原创 2020-07-18 17:57:30 · 2995 阅读 · 1 评论 -
利用Cmake语言建立初级多级工程
cmake 语言的简介:利用Cmake可以自动编译工程,建立多级工程。下面是我作为多级工程的一个例子:具体的结构等级如下:Cmake语言设计过程首先,我们设计新建文件app,改文件里面保存着encode、decode以及pc_error三个功能对应的源文件。1.在文件夹app下新建文件encoder文件,里面保存xx.cpp,在该文件夹新建CMakeLists.txt,具体内容如下:...原创 2020-02-26 20:29:33 · 326 阅读 · 0 评论 -
关于外部无法解析的符号分析与解决
C++遇到外部无法解析的符号遇到该问题比较棘手,主要原因是运行的时候只会报错,但是编译器无法指出那里的问题,但是出现这种问题的原因永远只有一种:如果你肯定你已经定义了改变量或者函数,那就肯定是头文件没有导进来或者函数的声明时形参类型和定义时的形参类型不一致。下面是我遇到的问题:我找了一下这两个的调用,位于源文件“TDecAttribute.cpp”中,并且这两个函数的声明文件“Attri...原创 2019-10-27 16:37:50 · 1916 阅读 · 0 评论 -
关于函数调用返回引用错误并且每次调用不一致的分析与解决
引用与指针的区别1.引用不能为空,不存在空引用,但是指针却可以存在空指针,这就意味着我们拿到一个引用时不需要判断引用是否为空,但是如果拿到的是一个指针,则需要判断指针是否为空之后再进行指针的进一步操作。2、引用一旦建立,将一直效忠于他,不能再引用。引用与变量的区别1.如果将一个变量绑定到一个引用上,那么如果这个引用发生改变,它所指向的变量也会发生改变。(这点非常重要,特别是在函数调用时,经...原创 2019-10-27 16:25:17 · 1215 阅读 · 0 评论