自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Git基础笔记

获取 Git 仓库通常有两种获取 Git 项目仓库的方式: 将尚未进行版本控制的本地目录转换为 Git 仓库; 从其它服务器克隆一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。在已存在目录中初始化仓库如果你有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,那么首先需要进入该项目目录中。 如果你还没这样做过,那么不同系统上的做法有些不同:在 Linux 上:$ cd /home/user/my_project..

2022-05-20 13:49:25 147

原创 C++ STL无序关联式容器

unordered_map存储键值对 <key, value> 类型的元素,其中各个键值对键的值不允许重复,且该容器中存储的键值对是无序的。unordered_multimap和 unordered_map 唯一的区别在于,该容器允许存储多个键相同的键值对。unordered_set不再以键值对的形式存储数据,而是直接存储数据元素本身(当然也可以理解为,该容器存储的全部都是键 key 和值 value 相等的键值对,正因为它们相等,因此只存储 value 即可)。另外

2022-02-19 22:01:18 856

原创 C++ STL关联式容器

map定义在 <map> 头文件中,使用该容器存储的数据,其各个元素的键必须是唯一的(即不能重复),该容器会根据各元素键的大小,默认进行升序排序(调用 std::less<T>)。set定义在 <set> 头文件中,使用该容器存储的数据,各个元素键和值完全相同,且各个元素的值不能重复(保证了各元素键的唯一性)。该容器会自动根据各个元素的键(其实也就是元素值)的大小进行升序排序(调用 std::less<T>)。multimap定义在

2022-02-19 16:06:19 425

原创 序列式容器

array<T,N>(数组容器):表示可以存储N 个 T 类型的元素,是C++本身提供的一种容器。此类容器一旦建立,其长度就是固定不变的,这意味着不能增加或删除元素,只能改变某个元素的值; vector<T>(向量容器):用来存放 T 类型的元素,是一个长度可变的序列容器,即在存储空间不足时,会自动申请更多的内存。使用此容器,在尾部增加或删除元素的效率最高(时间复杂度为 O(1) 常数阶),在其它位置插入或删除元素效率较差(时间复杂度为 O(n) 线性阶,其中 n 为容器中元素的.

2022-02-19 13:12:54 111

原创 STL学习笔记1

序列容器主要包括 vector 向量容器、list 列表容器以及 deque 双端队列容器。之所以被称为序列容器,是因为元素在容器中的位置同元素的值无关,即容器不是排序的。将元素插入容器时,指定在什么位置,元素就会位于什么位置。排序容器包括 set 集合容器、multiset多重集合容器、map映射容器以及 multimap 多重映射容器。排序容器中的元素默认是由小到大排序好的,即便是插入元素,元素也会插入到适当位置。所以关联容器在查找时具有非常好的性能。哈希容器C++ 11 新

2022-02-19 11:10:00 293

原创 实现C++和C的混合编程

#ifdef __cplusplusextern "C" void display();#elsevoid myfunction();#endif或者#ifdef __cplusplusextern "C" {#endifvoid display();#ifdef __cplusplus}#endif

2021-12-30 22:49:21 441

原创 Gurobi高阶变量与约束状态获取,LPWarmStart

最近在使用gurobi的LPWarmStart,其中CBasis和VBasis是常用的获取约束和变量状态的整形属性,除此之外还可以使用PStart和DStart。另外还了解到,若初始使用内点法,其实solver内部提供 crossover机制,在使用内点法的同时也在进行simplex,所以得注意属性的设置。...

2021-12-13 10:33:26 569

原创 C++:类型转换运算符

最近发现自己对这个知识点理解的模棱两可,特做笔记如下。转载自:笔记:类型转换运算符_酒红的专栏-CSDN博客_类型转换运算符略有删改。类型转换运算符(conversion operator)是类的一种特殊成员函数,它负责将一个类类型的值转换成其他类型。类型转换函数的一般形式是:operator type() const;其中,type表示转换目标类型,除了void、数组或函数类型,但允许转换成指针(包括数组指针及函数指针)。类型转换运算符既没有显式的返回类型,也没有形参,而且必须定.

2021-11-16 15:04:30 1011

原创 C++ 隐式的类类型转换

内容来源于C++ Primer 5,作为笔记。如果构造函数只接受一个实参,则它实际上定义转换为此类类型的隐式转换机制,有时我们把这种构造函数称作转换构造函数。能通过一个实参调用的构造函数定义了一条从构造函数的参数类型向类类型隐式转换的规则。只允许一步类类型转换类类型转换不是总有效抑制构造函数定义的隐式转换在要求隐式转换的程序上下文中,我们可以通过将构造函数声明为explicit加以阻止。关键字explicit只对一个实参的构造函数有效。需要多个实参的构造..

2021-11-06 17:10:34 1040

原创 C++ 使用默认构造函数

在阅读书籍时,发现对这一段内容特别陌生,特地记下来。下面的obj的声明可以正常编译通过:Sales_data obj() // 正确,定义了一个函数而非对象if(obj.isbn()) == primer_5th_ed.isbn()) // 错误,obj是一个函数担当我们试图使用obj时,编译器将报错,提示我们不能对函数使用成员访问元素符。问题在于,尽管我们想声明一个默认初始化的对象,obj实际的含义缺失一个不接收任何参数的函

2021-11-06 16:44:46 588

原创 【C/C++开发】STL内嵌数据类型: value_type

转载自:【C/C++开发】STL内嵌数据类型: value_type - ZhangPYi - 博客园使用stl库的时候一直对value_type这个东西理解的不是很好,可以说就是不理解。今天看了《STL源码剖析》才恍然大悟。这里稍作记录。每个STL中的类都有value_type这种东西,通俗的说value_type 就是stl容器盛装的数据的数据类型,例如:vector<int> vec;vector<int>::value_type x;上述两句代码,第一

2021-11-02 09:06:14 292

原创 C++ 中的左值和右值

引自:理解C和C++中的左值和右值在学习完C++之后,对左值和右值一直都明白的不是特别清晰,所以查阅资料后,决定对该内容进行笔记抄录,原文见上链接,略有整理。

2021-08-05 21:43:32 63

原创 C/C++ 时间类型详解(time_t和tm)

最近项目遇到了时间处理的地方,发现自己在这一块一致不太明白,查找到以下链接将时间类型讲解的非常详细了,特转载过来,方便查询和学习。https://blog.csdn.net/ybhjx/article/details/69374354?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&spm=1001.2101.3001.4242...

2021-07-28 17:14:05 181

原创 C/C++知识笔记 typedef函数指针

前段时间看到某行代码,竟然一下子觉得这个语法好奇怪,完全不懂,随后才发现typedef函数指针用法竟然忘记了,于是急忙搜集资料和查看C++ primer,于是以下为网络搜集和整理的梳理,记为笔记。文章整理自:https://www.cnblogs.com/shenlian/archive/2011/05/21/2053149.htmlhttps://blog.csdn.net/suntingsheng123/article/details/805898611.简单的函数指针的应用形式1:

2021-07-22 09:33:56 374

原创 C++知识笔记 extern “C”的作用详解

见链接:https://www.cnblogs.com/carsonzhu/p/5272271.html该文很详细的说明了extern “C”的作用与使用

2021-07-21 10:56:44 58

原创 C++学习笔记 C++11 std::chrono知识

来源于:https://www.cnblogs.com/jwk000/p/3560086.html,有删改chrono是一个time library, 源于boost,现在已经是C++标准。要使用chrono库,需要#include<chrono>,其所有实现均在std::chrono namespace下。chrono是一个模版库,使用简单,功能强大,需要理解三个概念:duration、time_point、clock。1.durationstd::chrono::durat.

2021-07-21 10:25:05 1174

原创 C++纯虚函数

当类的声明中包含纯虚函数时,则不能创建该类的对象。包含纯虚函数的类只用作基类,原型中,令某个虚函数= 0,那么该虚函数为纯虚函数。

2021-07-13 12:40:20 57

原创 C++虚成员函数和动态联合编译-随心笔记

class Brass{private: std::string fullName; long acctNum; double balance;public: Brass(const std::string& s = "Nullbody", long an = -1, double bal = 0.0); void Deposit(double amt); virtual void Withdraw(double.

2021-07-12 12:38:41 105

原创 C++ Primer Plus 第11章 习题5 答案

#ifndef STONEWT_H_#define STONEWT_H_#include <iostream>class Stonewt{public: enum class Style{STONE, POUNDS, FLOATPOUNDS};private: static const int LBS_PER_STN{ 14 }; int stone; double pds_left; double pounds; Style style;public: S.

2021-06-29 00:13:39 113

原创 C++ Primer Plus 第11章 习题4 答案

#ifndef MYTIME3_H_#define MYTIME3_H_#include <iostream>class Time{private: int hours; int minutes;public: Time(); Time(int h, int m = 0); void AddMin(int m); void AddHr(int h); void Reset(int h = 0, int m = 0); friend Time& ope.

2021-06-28 23:22:33 80

原创 C++ 构造函数与析构函数 杂记

C++提供了一个特殊的成员函数——类构造函数,专门用于构造新对象、将值赋给它们的数据成员。更准确地说,C++为这些成员函数提供了名称和使用语法,而程序员需要提供方法定义和实现。

2021-06-15 20:48:17 61

原创 C++ Primer Plus第9章 习题2

#include <iostream>#include <string>void strcount(const std::string str);int main(){ std::string input; std::cout << "请输入一行字符:" << std::endl; getline(std::cin, input); while (input != "") { strcount(input); std::co.

2021-06-13 20:21:11 39

C++ Primer Plus 第9章 习题1 答案

#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <cstring>#include "golf.h"int main(){ golf ann; setgolf(ann, "AnnBridfree", 24); golf andy; setgolf(andy); showgolf(ann); showgolf(andy); return 0;}void setgolf(gol.

2021-06-13 20:00:02 60

原创 学习笔记:using声明和using编译指令的区别

using声明例如,using std::cout;using std::endl;using声明可以单独使用名称空间中某个特定的

2021-06-13 18:49:57 285

原创 C++ Primer Plus第8章 习题7

#include <iostream>template<typename T>void ShowArray(T arr[], int n);template<typename T>void ShowArray(T* arr[], int n);template<typename T>T SumArray(T arr[], int n);template<typename T>T SumArray(T* arr[], int.

2021-06-13 17:04:06 118

原创 C++ Primer Plus第8章 习题6

#include <iostream>#include <cstring>template<typename Type> Type maxn(Type st[], int);template<> char* maxn<char*>(char* sst[], int n);int main(){ int arr[]{ 1,2,5,4,3 }; double arr_d[]{ 19.6,13,19.8,100.8,98.4 };.

2021-06-13 16:16:03 93

原创 C++ Primer Plus第8章 习题5

#include <iostream>template<typename Type>Type max5(Type[]);int main(){ int arr[]{ 1,2,5,4,3 }; double arr_d[]{ 19.6,13,19.8,100.8,98.4 }; std::cout << "arr[]里最大的数是:" << max5(arr) << std::endl; std::cout << "a.

2021-06-13 15:50:47 47

原创 C++ 数据储存类别

自动存储持续性。 在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。他们在程序开始执行其所属的函数或代码块时被创建,在执行完函数h

2021-06-11 12:44:51 184 2

原创 C++ Primer Plus第七章 习题7

#include <iostream>const int Max{ 5 };double* fill_array(double* ptrBegin, double* ptrEnd);void show_array(const double* ptrBegin, const double* ptrEnd);void revalue(double r, double* ptrBegin, double* ptrEnd);int main(){ double properties.

2021-06-08 00:46:26 35

原创 C++ Primer Plus 第七章 练习题1

#include <iostream>double harmonic(double x, double y);int main(){ double input_num1, input_num2; std::cout << "请输入两个数,用空格隔开" << std::endl; std::cin >> input_num1 >> input_num2; while (input_num1 != 0.000 &&.

2021-06-07 18:39:07 44

原创 详解const int* 与 int const*的区别

wehttps://www.zhihu.com/question/443195492

2021-06-05 17:10:49 6203

原创 C++ Primer Plus 第五章 习题7

#include <iostream>#include <string>struct car_info{ std::string manufacturer; int date;};int main(){ int car_number; car_info* pcar; std::cout << "你需要几个品牌的车?"; std::cin >> car_number; std::cin.get(); pcar = new car.

2021-06-01 22:34:45 74

原创 C++ Primer Plus 第6版 第5章 习题6

#include <iostream>#include <string>const int MONTHS{ 12 };int main(){ const std::string Month[MONTHS] { "January", "February", "March", "April", "May", "June", "July", "August", "Septempber", "October", "November", "December" }; int .

2021-06-01 00:23:40 85

原创 C++ Primer Plus 第4章 习题8

#include <iostream>#include <string>struct Pizza{ std::string company; double diameter; double weight;};int main(){ Pizza* ppizza = new Pizza; std::cout << "请输入pizza的信息:" << std::endl; std::cout << "pizza的直径是:" .

2021-05-30 22:58:11 264 1

原创 学习笔记 C++中的getline()和get()

istream中的类(如cin)提供了一些面向杭的类成员函数:getline()和get()。这两个函数都读取一行输入,知道到达换行符。然而,随后getline()将丢弃换行符,而get()将换行符保留在输入序列中。首先...

2021-05-29 23:55:48 406

原创 C++ Primer Plus 第六章 习题7 答案

#include <iostream>const double GALLON_TO_LITER{ 3.875 };const double HKM_TO_MILE{ 62.14 };int main(){ double fuel_consum_eur; double fuel_consum_us; std::cout << "请按欧式风格输入油耗量(1/100km):"; std::cin >> fuel_consum_eur; fuel_co.

2021-05-29 19:31:39 705

原创 C++ Primer Plus 第六章 习题6答案

#include <iostream>int main(){ double distance_in_mile, distance_in_km; double fuel_in_gallon, fuel_in_litre; double fuel_consum; std::cout << "输入以英里为单位的距离:"; std::cin >> distance_in_mile; std::cout << "输入消耗的油量单位(加仑)";.

2021-05-29 19:15:29 128

原创 C++ Primer Plus 课后编程 第二章 习题7

#include <iostream>void format_print(int hours, int minutes);int main(){ int hours, minutes; std::cout << "输入小时数: " << std::endl; std::cin >> hours; std::cout << "输入分钟数: " << std::endl; std::cin >> mi.

2021-05-29 16:16:02 41

转载 学习笔记— typeid

在c++中,typeid用于返回指针或引用所指对象的实际类型。注意:typeid是操作符,不是函数。这点与sizeof类似)运行时获知变量类型名称,可以使用 typeid(变量).name()RTTI(Run-Time Type Identification)-运行时类型识别在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引

2021-05-24 12:26:33 131

原创 学习笔记-C++虚析构函数

为了确保为自由存储区中创建的派生类对象调用正确的析构函数,需要使用虚析构函数。要在派生类中实现虚析构函数,只需要在基类的析构函数声明中添加关键字virtual。这就告诉编译器,通过指针或者引用参数调用的析构函数应该是动态绑定的,这样析构函数就在运行期间选择。虽然派生类的析构函数有不同的名称,但是从基类派生的每个类的析构函数都是虚拟的;虚拟构函数就是为了这个目的特殊设计的。...

2021-05-23 21:13:43 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除