发狂的蜗牛
教育行业
展开
-
c++的入门第一课
如果省略了-o progl参数,在UNIX系统中编译器会生成一个名为a.out的可执行文件,在Windows系统中则会生成一个名为a.exe的可执行文件(注意:根据使用的GNU编译器的版本,你可能需要指定-std=c++0x参数来打开对C++11的支持)。关于C/C++开的正确格式的辩论是无休止的。例如,大多数程序员都对程序的组成部分设置恰当的缩进,就像我们在之前的例子中对main函数中的语句和循环体所做的那样。我们所采用的风格是,注释内的每行都以一个星号开头,从而指出整个范围都是多行注释的一部分。原创 2024-08-17 17:26:20 · 200 阅读 · 0 评论 -
宽度优先搜索的一个简单例子——马的遍历
而对于终止搜索,根据宽度优先搜索的特性,只要处理好棋盘边界和不走“回头路”的问题,当所有点都被搜索完后,队列里将不会再有点,此时队列为空,自然而然会终止搜索。从该点出发,向8个方向走步,新到的点的步数等于现在的步数加1,再从新到的点出发,向8个方向各走一步,以此类推,走完所有可能情况,即可找到答案。深度优先搜索的特点是,每次走到一个位置以后,总是尽可能向深处走,一直尝试下一层的决策,直到遇到不合法的位置或者无法找到答案,而宽度优先搜索是先尝试在本层枚举,如果本层没有答案,则去下一层枚举下一层的所有可能性。原创 2024-08-05 19:44:25 · 152 阅读 · 0 评论 -
c++模板类作为基类-模板子类访问基类成员的方法
c++模板类作为基类-模板子类访问基类成员的方法原创 2024-01-25 09:42:58 · 867 阅读 · 0 评论 -
关于字符串查找的一个例子,哪错了?
c字符串查找的一个例子原创 2024-01-19 21:24:34 · 398 阅读 · 0 评论 -
内存四区图练习
内存四区原创 2024-01-16 21:06:49 · 384 阅读 · 0 评论 -
c语言枚举类型enum的用法及应用实例
今天跟大家讲一下我在产品开发时,用枚举(enum)的一些骚操作。我跟你保证,今天的内容绝对是你在书本和视频学不到的。为什么要讲枚举呢?因为我发现它是一个容易被遗忘,同时又非常重要的关键词,大家如果看那些大佬写的程序,真的会发现有非常非常多enum的应用。让我惊奇的是市面上的一些C语言书籍以及视频课程并没有重视去讲enum。今天我们还是从理论到实际产品应用,教大家真正掌握enum。通过这篇内容你能掌握以下知识:掌握枚举的相关概念掌握枚举的几种用法掌握枚举在实际产品中的应用。原创 2024-01-16 10:51:42 · 1880 阅读 · 0 评论 -
c++正则表达式(ECMAScript语法)中的\d、\D、\s、\S、\w、\W简单练习
正则表达式中\s、\S、\d、\D、\w、\W原创 2022-11-10 19:46:04 · 1247 阅读 · 0 评论 -
c++primer 正则表达式详细介绍和实例
c++正则表达式原创 2022-11-04 11:56:54 · 591 阅读 · 0 评论 -
关于c++一个可变参数模板的一个例子
模板类型参数列表原创 2022-10-25 19:38:32 · 456 阅读 · 0 评论 -
关于c++动态内存分配的若干注意问题总结
c++有动态内存的类对象定义行为注意点汇总原创 2022-08-23 11:12:46 · 421 阅读 · 0 评论 -
c++正则表达式汇总
常用正则表达式汇总原创 2022-08-21 17:00:27 · 1064 阅读 · 0 评论 -
c++ 正则表达式的若干难查问题
正则表达式若干注意问题原创 2022-08-21 16:16:47 · 948 阅读 · 0 评论 -
c++primer 17章学习
tuple原创 2022-07-22 22:29:16 · 865 阅读 · 0 评论 -
c++模板实参的推断和引用(第二部分大多数参考c++primer写的)
c++引用和模板实参推断原创 2022-06-04 11:45:04 · 634 阅读 · 0 评论 -
C++游戏开发需要阅读的书籍
c++书籍原创 2022-06-04 09:38:39 · 1285 阅读 · 0 评论 -
C++模板中的非类型参数(有个Array源代码,good)
模板是一种泛型技术,目的是将数据的类型参数化,以增强 C++ 语言(强类型语言)的灵活性。C++ 对模板的支持非常自由,模板中除了可以包含类型参数,还可以包含非类型参数,例如:template<typename T, int N> class Demo{ };template<class T, int N> void func(T (&arr)[N]);T 是一个类型参数,它通过class或typename关键字指定。N 是一个非类型参数,用来传递数据的值,而不是原创 2022-04-10 08:34:59 · 30 阅读 · 0 评论 -
c++ 模板教程(c语言中文网) 自己运行实例
注:本文的例子全部都是c语言中文网上的c++教程,自己只不过是运行了一遍而已。个别地方添加了点东西。17.1模板函数入门1.自己的第一个运行的程序(c语言中文网上源代码)// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <string>#include <iostream>using namespace std;template<typename T.原创 2022-04-07 20:56:46 · 1501 阅读 · 0 评论 -
c++primer 第16章课后习题简答和部分知识点自己的感悟
16.3如果sales_data没有定义运算符,那么给出如下错误:sales_data.cc: In instantiation of ‘int compare(const T&, const T&) [with T = Sales_data]’:sales_data.cc:143:22: required from heresales_data.cc:90:6: error: no match for ‘operator<’ (operand types are ‘co原创 2022-04-03 16:07:00 · 421 阅读 · 0 评论 -
自己学习c++帖子记录
c++模板帖子C++ 模板详解 | 菜鸟教程原创 2022-04-03 11:22:32 · 25 阅读 · 0 评论 -
C++中最好不要在构造函数和析构函数中调用虚函数
1.最好不要在基类和派生类的构造和析构函数中调用虚函数,不会出现多态性实例如下: #include "iostream" using namespace std; class Base{ public: Base(){ cout << "Base::Base()\n"; fun(); } virtual ~Ba...原创 2021-12-31 21:32:18 · 778 阅读 · 2 评论 -
c++primer 12.3.1文本查询程序
#include <string>#include <iostream>#include <memory>#include <vector>#include <set>#include <map>#include <sstream>#include "query.h"#include <fstream>using namespace std;//file必须分配空间,管理内存//动态内存.原创 2021-12-26 11:01:14 · 599 阅读 · 0 评论 -
c++继承构造函数
【1】为什么需要继承构造函数?首先,看看如下代码片段: 1 struct A 2 { 3 A(int i) 4 {} 5 }; 6 7 struct B : A 8 { 9 B(int i) : A(i)10 {}11 };在C++中非常常见:B派生于A,B在构造函数中调用A的构造函数,从而完成构造函数的“传递”。有时候,基类可能拥有数量众多的不同版本的构造函数(这样的情况并不少见)。那么,倘若基类中有大量的构造函数原创 2021-12-18 17:50:43 · 11305 阅读 · 0 评论 -
C++中的虚析构函数
Cpp中的虚析构函数1.虚析构函数的作用:为了避免内存泄漏,而且是当子类中会有指针成员变量时才会使用到。即虚析构函数使得在删除指向子类对象的基类指针时,可以调用子类的析构函数来实现释放子类中堆内存的目的,从而防止内存泄漏。2.C++中开发中,基类中的析构函数一般都是虚函数,如下面的例子: #include <iostream> using namespace std; // 基类 class Base{ public: ...原创 2021-12-13 21:33:52 · 7366 阅读 · 1 评论 -
个人c++ 错误记录
1.类定义输入运算符 >> 时候,代码最后应该检测 输入流是否为有效,如果无效,应该把输入对象置于默认初始化状态。 定义>>时候,类必须是非常量引用。定义<<,最好是常量引用。 定义的时候不能加friend.2....原创 2021-10-10 11:11:21 · 2163 阅读 · 0 评论 -
c++primer 5th第15章基础、课后习题自己解析、心得体会等
class Quote{public: std::string isbn() const; virtual double new_price(size_t n) const;};原创 2021-12-07 17:56:23 · 706 阅读 · 0 评论 -
c++ 成员运算符->的重载
#include <string>#include <iostream>#include <memory>#include <vector>using namespace std;class A{ public: string*operator->(){return & operator*();} string & operator*() { return v[curr]; } const .原创 2021-12-04 19:21:59 · 300 阅读 · 0 评论 -
c++ primer 第14章 习题解答
14.1节14.1答不同点:重载操作符必须具有至少一个class或枚举类型的操作数。重载操作符不保证操作数的求值顺序,例如对&&和| | 的重载版本不再具有“短路求值”的特征,两个操作数,两个操作数都要进行求值,而且不规定操作数的求值顺序。相同点: 对于优先级和结合性及操作数的数目都不变。14.2 答:文件sales_data.cc#include <iostream>#include <string>#i...原创 2021-11-27 18:20:32 · 1410 阅读 · 0 评论 -
c++成员访问运算符->的重载
#include <string>#include <vector>#include <iostream>using namespace std;class A{ public: string* operator->() { return & data[curr]; } private: vector<string> data{"str1","str2","str3"}; size_t c...原创 2021-11-13 10:17:04 · 2247 阅读 · 0 评论 -
c++成员运算符的重载
下面是自己编写的一个例子#include <string>#include <iostream>#include <memory>using namespace std;class B{ public: B() = default; B(const string &str):arr({"sss1","sss2","sss3","sss4"}),curr(0){} string & operator*() {...原创 2021-10-31 16:05:09 · 466 阅读 · 0 评论 -
在linux系统中安装matplotlib
首先:执行sudo apt install python3-matplotlib其次:执行sudo apt install python3.8-dev python3.8-tk tk-dev说明:这里的3.8,书上写的的是3.5,但是我自己的编译器版本较高,所以我就把3.5改成这里的3.8,果然奏效,安装成功。接下来:执行sudo apt install libfreetype6-dev g++但是我自己的系统提示,如下信息:Reading packag...原创 2021-10-07 16:51:47 · 3706 阅读 · 0 评论 -
c++primer书上习题date类的部分源代码(待整理)
()原创 2021-10-06 22:36:49 · 131 阅读 · 0 评论 -
C++ primer 14章习题答案
14.1节练习14.1相同点:对于优先级和结合型以及操作数的数目都不变。不同点:重载操作符必须具有至少一个class或枚举类型的操作数。14.2原创 2021-10-01 16:58:13 · 434 阅读 · 0 评论 -
关于右值和左值引用成员函数的几个例子
#include <string>#include <iostream>using namespace std;class A{public: A()= default; A(int b):a(b){} void print()&& { a = 1234; cout <<__func__<<"1:"<< a << endl; } void print()&...原创 2021-09-25 09:40:26 · 527 阅读 · 0 评论 -
(学习c++primer5th的重要)c++ primer5th类指针版本hasptr (网上源代码错误) 定义错误
#include <string>#include <cstddef>#include "hasptr.h"using namespace std; HasPtr::HasPtr(const std::string &s): ps(new std::string(s)), i(0), use(new std::size_t(1)) {} // copy constructor copies all three data members //.原创 2021-09-21 21:17:20 · 337 阅读 · 0 评论 -
c++primer练习13.42
把strblob中的vector<string> 换成strvec练习13.42//functions.cc#include <string>#include <iostream>#include "strblob.h"#include "strblobptr.h"#include <vector>#include "strvec.h"using namespace std;//strblob.h成员函数实现StrBlob:原创 2021-09-08 22:41:57 · 184 阅读 · 0 评论 -
c++ primer 5th,message.h和folder.h
//fod_function.cc#include <string>#include <iostream>#include <memory>#include <new>#include "folder.h"#include "message.h"using namespace std;void Folder::addMsg(Message *rhs){ messages.insert(rhs);}void Folder::remMsg.原创 2021-09-05 09:46:02 · 282 阅读 · 0 评论 -
c++ primer 习题13.39自己做的答案
//strvec.cc#include <string>#include <iostream>#include <memory>#include "strvec.h"using namespace std;//一个类对象是const的,它的元素不是const的StrVec::StrVec(const StrVec &rhs){//allocate_n_copy:可以开辟新的存储空间,然后把给定参数范围的元素逐个拷贝进去,然后//返回构造好.原创 2021-09-05 09:04:28 · 219 阅读 · 0 评论 -
关于set.insert的一个问题,是否是常量的问题(未解决问题)
里面有5个文件//folder.h#ifndef FOLDER_H#define FOLDER_H#include <string>#include <iostream>#include "message.h"#include <set>using namespace std;class Message;class Folder{ public: Folder() = default; void addMsg(Message * rhs.原创 2021-08-30 19:39:37 · 380 阅读 · 0 评论 -
C++三五法则,看看你能不能理解(推荐)
简介:三五法则规定了什么时候需要1、拷贝构造函数 2、拷贝赋值函数 3、析构函数1、需要析构函数的类也需要拷贝构造函数和拷贝赋值函数。通常,若一个类需要析构函数,则代表其合成的析构函数不足以释放类所拥有的资源,其中最典型的就是指针成员(析构时需要手动去释放指针指向的内存)。所以,若存在自定义(且正确)的析构函数,但使用合成的拷贝构造函数,那么拷贝过去的也只是指针,此时两个对象的指针变量同时指向同一块内存,指向同一块内存的后果很有可能是在两个对象中的析构函数中先后被释放两次。所以需...原创 2021-07-21 21:26:01 · 491 阅读 · 1 评论 -
c++类名字查找与类的作用域
一、总纲二、用于类成员声明的名字查找原创 2021-07-21 15:03:00 · 354 阅读 · 0 评论