C++学习总结(一)

C++ 快速学习(一) 总感觉学计算机不该只关注计算机技术,结合计算机技术做一些跨领域 的事情会更有意义。计算机视觉是一个不错的方向,鉴于图像处理一般用C++的场景比较多,决定先从C++入手。 阅读详情

 一、传值参数 int  add(int a, int b ,int c)

当函数运行结束时,形式参数所属数据类型的析构函数负责释放该形式参数。
当一个函数返回时,形式参数的值不会被复制到对应的实际参数中。因此,
函数调用不会修改
实际参数的值。

二、模板函数

 假定要编写几个浮点数相加,和上面函数差不多,只是数据类型不同,故可用模板函数。

template<class T>
T Abc(T a, T b, T c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}


T可用替换成float ,int,long都可用。

三、引用参数

上面的函数执行消耗时间太多,假如为三个参数1000个元素的矩阵,那么调用时要进行很多次的复制构造函数,当函数调用结束时,要调用析构函数花很多次来释放a,b,c,故用引用参数。与传值参数的情况不同,在函数被调用时,本程序并没有复制实际参数的值,在函数返回时也没有调用析构函数。

template<class T>
T Abc(T& a, T& b, T& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}

四、常量引用参数
 

 这种模式指出函数不得修改引用的参数。

template<class T>
T Abc(const T& a, const T& b, const T& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}

a,b 和c 的值不能被修改。对于int、float 和char 的简单数据类型,当函数不会修改实际参数值的时候可以采用传值参数;对于所有其他的数据类型(包括模板类型),当函数不会修改实际参数值的时候可以采用常量引用参数。

 

参数类型为多种的模板类:

template<class Ta, class Tb, class Tc >
Ta Abc (const Ta& a, const Tb& b, const Tc& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}

返回值类型与第一个参数相同。

五、返回值

返回值可以是具体的值,引用或常量引用。

对于返回值是具体值的:被返回的对象均被复制到调用环境中。因为函数所计算出的表达式的结果被存储在一个局部临时变量
中,当函数返回时,这个临时变量(以及所有其他的临时变量和传值形式参数)所占用的空间将被释放,其值当然也不再有效。为了避免丢失这个值,在释放临时变量以及传值形式参数的
空间之前,必须把这个值从临时变量复制到调用该函数的环境中去。

返回一个引用:

T& X(int i, T& z)  return z;

返回引用参数Z

这种返回形式不会把z 的值复制到返回环境中。当函数X返回时,传值形式参数i 以及所有局部变量所占用的空间都将被释放。由于z 是对一个实际参数的引用,因此,它不会受影响。

返回一个常量引用:

const T& X (int i, T& z)

与返回常量引用的不同点:除了返回的结果是一个不变化的对象之外,返回一个常量引用与返回一个引用是相同的。

六、递归函数
 递归函数包括两种:直接递归(direct recursion)和间接递归(indirect recursion)。直接递归是指函数F的代码中直接包含了调用F的语句,而间接递归是指函数F调用了函数G,G又调用了H,如此进行下去,直到F又被调用。

一个简单的例子是计算阶乘:

int Factorial (int n)
{ / /计算n!
if (n<=1) return 1;
else return n * Factorial(n- 1 ) ;
}


 七、动态存储分配

        操作符n e w:该操作符返回一个指向所分配空间的指针。

为了给一个整数动态分配存储空间,可以使用下面的语句来说明一个整型指针变量:int *y ; 当程序需要使用该整数时,可以使用如下语法来为它分配存储空间:y = new int;

操作符n e w分配了一块能存储一个整数的空间,并将指向该空间的指针返回给y,y是对整数指针的引用,而* y则是对整数本身的引用。

下面三个动态分配空间等价:

int *y = new int;
*y = 10;
或
int *y = new int (10);
或
int *y;
y = new int (10);

        一维数组:数组的大小它们可能随着函数调用的变化而变化。

      在运行时创建一个大小为n 的一维浮点数组 :float *x = new float [n]; 操作符n e w分配n 个浮点数所需要的空间,并返回指向第一个浮点数的指针。

   异常处理:采用try - catch 结构来捕获(c a t c h)new 所引发的异常:

float *x;
try {x = new float [n];}
catch (xalloc) { // 仅当new 失败时才会进入
cerr << "Out of Memory" << endl;
e x i t ( 1 ) ; }

当一个异常出现时,程序进入与该异常相对应的c a t c h语句块中执行。在上面的例子中,只有在执行try 语句时产生了xalloc 异常,才会进入catch (xalloc) 语句块,由语句exit (1) 终止程序的运行。(exit () 在stdlib.h 中定义。)
语法catch (...) 定义了一个能捕获所有异常的c a t c h块。当一个异常被引发时,检查在程序执行过程中所遇到的最接近的try-catch 代码,如果其中的一个catch 块能够处理所产生的异常,程序将从这个catch 块中继续执行,否则,继续检查直到找到与异常相匹配的块。

 操作符d e l e t e

动态分配的存储空间不再需要时应该被释放。以释放分配给* y的空间以及一维数组x:
delete y;
delete [ ] x;

 二维数组

当形式参数是一个二维数组时,必须指定其第二维的大小。例如,a[ ][10]是一个合法的形式参数,而a[ ][ ] 不是。克服这种限制的一条有效途径就是对于所有的二维数组使用动态存储分配。

当一个二维数组每一维的大小在编译时都是已知时,可以采用类似于创建一维数组的语法来创建二维数组。例如,一个类型为char的7×5数组可用如下语法来定义:
char c[7][5];

如果在编译时至少有一维是未知的,必须在运行时使用操作符n e w来创建该数组。一个二维字符型数组,假定在编译时已知其列数为5。

动态分配二维数组如下:

char (*c)[5];
try { c = new char [n][5];}
catch (xalloc) {//仅当n e w失败时才会进入
cerr << "Out of Memory" << endl;
exit (1);}

数组的行数n要么通过计算来确定,要么由用户来指定。如果在编译时数组的列数也是未知的,那么不可能调用一次n e w就能创建该数组(即使数组的行数是已知的)。构造二维数组时,可以把它看成是由若干行组合起来的,每一行都是一个一维数组,可以按照前
面讨论的方式用n e w来创建,指向每一行的指针可以保存在另外一个一维数组之中。

x[0], x[1], x[2]分别指向第0行,第1行和第2行的第一个元素。所以,如果x是一个字符数组,那么x [ 0 : 2 ]是指向字符的指针,而x本身是一个指向指针的指针。

其结构可用用下图来表示:

可用如下语法来说明x :
 char **x;

为了创建如图1 - 1所示的存储结构,可用如下代码:

template <class T>
bool Make2DArray ( T ** &x, int rows, int cols)
{// 创建一个二维数组
t r y {
/ /创建行指针
x = new T * [rows];
/ /为每一行分配空间
for (int i = 0 ; i < rows; i++)
x[i] = new int [cols];
return true;
}
catch (xalloc) {return false;}
}

该程序创建一个类型为T的二维数组,这个数组有r o w s行和c o l s列。程序首先为指针x [ 0 ] , . . . , x [ r o w s - 1 ]申请空间,然后为数组的每一行申请空间。如果没有出现异常,数组将被成功创
建,函数M a k e 2 D A r r a y返回t r u e。对于所创建的数组x中的元素,可以使用标准的用法来引用,
如x [ i ] [ j ] ,其中0≤i<r o w s , 0≤j<c o l s。

释放上面申请的数组空间:首先释放在f o r循环中为每一行所分配的空间,然后释放为行指针所分配的空间。x被置为0,以便阻止用户继续访问已被释放的空间。

template <class T>
void Delete2DArray( T ** &x, int rows)
{// 删除二维数组x
/ /释放为每一行所分配的空间
for (int i = 0 ; i < rows ; i++)
delete [ ] x[i];
/ /删除行指针
delete [] x;
x = 0;
}


八、类

 

class Currency {
public:
Currency(sign s = plus, unsigned long d = 0, unsigned int c = 0);//构造函数
// 析构函数
~Currency() {}
//这个函数被称为析构函数。每当一个Currency对象超出作用域时将自动调用析构函数。这个函数用来删除对象。
bool Set(sign s, unsigned long d, unsigned int c);
bool Set(float a);
sign Sign() const {return sgn;}
unsigned long Dollars() const {return dollars;}
unsigned int Cents() const {return cents;}
Currency Add(const Currency& x) const;//Add函数不会修改当前对象,是一个常元函数
Currency& Increment(const Currency& x);//函数Increment把对象x 的货币数量添加到当前对象上,这个函数修改了当前对象,因此不是一个常元函数.。它返回的是一个全局对象,因而不需要复制。
void Output() const;//不会修改当前对象,因此是一个常元函数。
private:
sign sgn;
unsigned long dollars;
unsigned int cents;} ;


采用如下两种方式来创建C u r r e n c y类对象:
Currency f, g (plus, 3,45), h (minus, 10);
Currency *m = new Currency ( plus, 8, 12);
复制构造函数被用来执行返回值的复制及传值参数的复制。程序1 - 1 5中没有给出复制构造
函数,所以C + +将使用缺省的复制构造函数,它仅可进行数据成员的复制。对于类C u r r e n c y来
说,使用省缺的复制构造函数已经足够。后面还将看到许多类,对于这些类缺省的复制构造函数已难以胜任它们的复制工作。

Currency类的构造函数

Currency::Currency(sign s, unsigned long d, unsigned int c)
{// 创建一个C u r r e n c y对象
if(c > 99)
{ / /美分数目过多
cerr << "Cents should be < 100" << endl;
e x i t ( 1 ) ; }
sgn = s; dollars = d; cents = c;
}

 

看一下调用g.Increment(h);函数I n c r e m e n t的第一行调用了p u b l i c成员函数A d d,它把x (这里是h) 加到当前对象上(这里是g),所得结果被返回,并被赋给* t h i s,* t h i s就是当前对象。由于该对象不是函数I n c r e m e n t的局部对象,因此当函数结束时,该对象不会自动被删除。所以可以返回一个引用。

 

 程序 Increment与O u t p u tCurrency& Currency::Increment(const Currency& x)
{// 增加量x .
*this = Add(x);
return *this;
}
void Currency::Output () const
{// 输出currency 的值
if (sgn == minus) cout << '-';
cout << '<< dollars << '.'; if (cents < 10) cout << "0"; cout << cents; }

 

 

 

 

 

 

 

使用不同的描述方法

现在我们想要对C u r r e n c y类的描述进行修改,使其应用频率最高的两个函数A d d和I n c r e m e n t可以运行得更快,从而提高应用程序的执行速度。由于用户仅能通过p u b l i c部分所提供的接口与C u r r e n c y类进行交互,因此对p r i v a t e部分的修改并不会影响应用代码的正确性。

Currency类的新定义

 

  1. <span style="font-weight: normal;">class Currency {  
  2. p u b l i c :  
  3. // 构造函数  
  4. Currency(sign s = plus, unsigned long d = 0, unsigned int c = 0);  
  5. // 析构函数  
  6. ~Currency() {}  
  7. bool Set(sign s, unsigned long d, unsigned int c);  
  8. bool Set(float a);  
  9. sign Sign() const  
  10. {if (amount < 0) return minus;  
  11. else return plus;}  
  12. unsigned long Dollars() const  
  13. {if (amount < 0) return (-amount) / 100;  
  14. else return amount / 100;}  
  15. unsigned int Cents() const  
  16. {if (amount < 0)  
  17. return -amount - Dollars() * 100;  
  18. else return amount - Dollars() * 100;}  
  19. Currency Add(const Currency& x) const;  
  20. Currency& Increment(const Currency& x)  
  21. {amount += x.amount; return *this;}  
  22. void Output() const;  
  23. p r i v a t e :  
  24. long amount;</span>  
  25. } ;  

 

  1. Currency::Currency(sign s, unsigned long d, unsigned int c)  
  2. {// 创建Currency 对象  
  3. if (c > 99)  
  4. {// 美分数目过多  
  5. cerr << "Cents should be < 100" << endl;  
  6. e x i t ( 1 ) ; }  
  7. amount = d * 100 + c;  
  8. if (s == minus) amount = -amount;  
  9. }  
  10. bool Currency::Set(sign s, unsigned long d,  
  11. unsigned int c)  
  12. {// 取值  
  13. if (c > 99) return false;  
  14. amount = d * 100 + c;  
  15. if (s == minus) amount = -amount;  
  16. return true;  
  17. }  

 

  1. bool Currency::Set(float a)  
  2. {// 取值  

 

  1. sign sgn;  
  2. if (a < 0) {sgn = minus; a = -a;}  
  3. else sgn = plus;  
  4. amount = (a + 0.001) * 100;  
  5. if (sgn == minus) amount = -amount;  
  6. return true;  
  7. }  

 

  1. Currency Currency::Add(const Currency& x) const  
  2. {// 把x 累加至* t h i s .  
  3. Currency y;  
  4. y.amount = amount + x.amount;  
  5. return y;  
  6. }  
  7. void Currency::Output() const  
  8. { / /输出currency 的值  
  9. long a = amount;  
  10. if (a < 0) {cout << '-' ; a = -a;}  
  11. long d = a / 100; // 美元  
  12. cout << '$' << d << '.';  
  13. int c = a-d * 100; // 美分  
  14. if (c < 10) cout << "0";  
  15. cout << c;  
  16. }  



 

我的c++学习记录一 ————初识c++ 我的c++学习记录一 ————初识c++ C++ 语言的特点 C++ 语言的特点主要表现在两个方面:全面兼容 C 语言和支持面向对象的方法。 命名空间 命名空间里面包含了逻辑结构上相互关联的一组类、函数、模板等。命名空间像是一个容器,把某些在逻辑结构上相关的 “ 对象 ” 放在一起并与外界区分。特别的,命名空间里的变量名或类名可以和命名空间外的变量名或类名重名。 使用命名空间的时候,我们可以用花括号把声明块括起来,再以关键字namespace开头并命名,其基本格式如下: n... 阅读详情

相关推荐

主成分分析(PCA)和局部线性嵌入(LEE)原理详解

从KNN谈“维度灾难”,介绍线性降维PCA和局部线性嵌入LLE 这两种降维方法的原理

superzzx0920的博客 5616

《C++标准库》学习笔记 — STL —流

《C++标准库》学习笔记 — 流一、操控器1、原理2、自定义操控器3、控制输入的宽度 一、操控器 所谓操控器是一种专门用来操控 stream 的一种对象,通常它只会改变输入的解释方式或输出的格式化方式。带实参的操控器被定义在 文件中,如 setw 等;不带实参的操控器包括 endl、flush。 1、原理 操控器的实现原理其实是函数指针。在 ostream 中定义了 operator<< 的多种重载,其中包括: __ostream_type& operator<<(__os

coding-hwz 744

Zephyr OS实战指南:从入门到精通物联网开发

本文提供了一份详尽的Zephyr OS实战指南,涵盖从开发环境搭建到物联网应用开发的全过程。文章详细介绍了如何利用Zephyr OS进行线程管理、设备驱动开发、低功耗设计以及蓝牙通信,并通过具体代码示例帮助开发者快速掌握这一专为物联网设备设计的开源实时操作系统,实现从入门到精通的跨越。

weixin_29201933的博客 546

c++学习总结(持续更新)

如有错误误导,感谢指出

Tg662的博客 3377

从“要啥”到“咋测”:手把手拆解Aspice SWE.1需求分析,为你的车载/嵌入式项目避坑

本文深入解析Aspice SWE.1需求分析在车载/嵌入式项目中的关键作用,帮助开发者将模糊的系统需求转化为可执行、可验证的软件需求。通过实战案例和结构化方法,详细拆解功能需求原子化、非功能需求工程化表达等核心技巧,为项目避坑提供实用指南。

weixin_31682031的博客 257

FPGA新手必看:XC7Z020最小系统搭建全攻略(附原理图解析)

本文为FPGA新手提供了XC7Z020最小系统搭建的完整实战指南。文章详细解析了电源架构、时钟复位、配置调试等关键硬件电路设计,并重点剖析了外围电路与端口引脚的连接要点及常见陷阱,帮助读者从零开始构建稳定可靠的开发平台。

weixin_29189377的博客 359

C++ 学习总结

C++ 学习总结一、#ifndef/#define/#endif二、命名空间 一、#ifndef/#define/#endif 有很多头文件中会出现上面的代码结构,目的是为了防止当前头文件被重复引用。 “被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成的。比如:存在a.h文件#include “c.h”,而此时b.cpp文件导入#include "a.h"和#include "c.h"此时就会造成c.h重复引用。 头文件被重复引用引起的后果:

qq_37687096的博客 597

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

东城绝神 4459

C / C++ 知识总结

(一). 一维数组 1.定义一维数组的一般形式为 类型符 数组名【常量表达式】 int a [10](40个字节) 他表示定义了一个整型数组,数组名为a,此数组有10个整型元素。 注意下标是从0开始的,即a[0]~a[9]。 说明: (1)数组名的命名规则和变量名相同,遵循标识符命名规则。 (2)常量表达式中可以包含常量和符号常量。如 int a[3+5]是合法的。 但不能包含变量,如in...

qq_43573663的博客 6096

论文阅读|《强化学习在加工时间可变的机器人流水车间调度中的应用》

《Reinforcement Learning for robotic flow shop scheduling with processing time variations》 International Journal of Production Research/2021 1 摘要 我们解决了一个机器人流水车间调度问题,其中两种零件类型在每组给定的专用机器上进行处理。单个机器人在固定轨道上移动,一次运输一个部件,在给定的时间间隔内,这些部件在机器上的加工时间各不相同。我们使用强化...

太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群! 2929

uv pip install时出现error: Request failed after 3 retries 解决方案

本文主要介绍了uv pip install时出现error: Request failed after 3 retries解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 方法一 2.2 方法二

weixin_43178406的博客 12万+

【补】C++入门基础,万字总结超详细!!!

此文章是对C++入门上篇的一些零碎知识的总结,其中包括C++关键字,C++命名空间,C++输入输出,缺省参数,函数重载,auto关键字,基于范围的for循环,指针空值nullptr 等等知识,文章由浅入深,通俗易懂,赶快进来开始学习之旅吧!

2302_79341182的博客 1674

【Bug已解决】Codex 切换 model_provider 后历史会话消失的解决方案

方案适用场景推荐指数切回原 provider 验证排查的第一步,确认数据是否真的丢失⭐⭐⭐⭐⭐查看本地会话文件进一步确认数据完整性⭐⭐⭐⭐⭐查阅跨 provider 恢复命令官方是否提供了对应功能⭐⭐⭐使用社区辅助工具需要频繁切换 provider 的场景⭐⭐⭐定期备份配置目录任何场景下的通用保险措施⭐⭐⭐⭐切换后历史会话"消失"的本质是客户端的会话列表展示逻辑受当前活跃 provider 状态过滤,而不是原始数据文件被真正删除。

一键难忘的博客 5999

Effective C++ 学习笔记一:让自己习惯cpp

一:View C++ as a federation of languages; 视C++为一个语言联邦 将c++视为由相关语言组成的联邦而非单一语言。理解其相关的次语言。 1.C 2.object-oriented C++ 3.Template C++ 4.STL c++高效编程守则视情况而变化,取决于你使用C++的哪一部分 二:Prefer consts,enums,a...

qq_33776188的博客 538

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【C++】cpp学习笔记(一)

C++ 简介 C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。 C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。 面向对象程序设计 C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性: 封装 抽象 继承 多态 g++ 应用说明 程序 g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不

yusihe的博客 212

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

CPP学习记录(一)

命名空间的定义和引用 命名空间的理解 命名空间是cpp的一种语言特性,就像class类一样。命名空间是为了解决全局变量和函数名冲突的问题。命名空间就像是车牌,上海的车前面都带个沪,陕西的车前面都带个陕,至于后面的数字和字母,也可以相同,也可以不同,这样车辆违章了才能够分辨出来。 定义 命名空间的定义方式如下,namespace是关键字,NS1是名称。 namespace NS1 { void f...

weixin_43310105的博客 226

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++的学习感想(一)

很多人把学习C++语言当成学习VC了,我曾经就走过这样的弯路。当学了很长时间的VC后还是得回过头来学习C++语言本身。        那么学习C++从何处入手呢?  C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类),另外就是模板技术(模板编程或者叫泛型编程是进来非常流行的技术,在C#中虽然还没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模

好好学习,天天向上! 1626

C++学习——哈希表(一)

本文为《C++学习》的第篇文章,今天学习最后一个数据结构哈希表(散列表)。

weixin_72870689的博客 354

回顾一学期的c++课程学习

转眼间,一学期的课程过去了,时间过得真快,还记得一开始上c++课时,看着那本厚厚的c++课本,心里想,那么厚,什么时候才能学的完,结果,一眨眼就结课了。       我感觉在这门课程上还是有很多收获的,首先,老师介绍给了我们一个很好的学习平台——csdn博客,这上面有许多大神级的人物,有时候学的困难了,迷茫了,就去看看他们写的文章,发的博客,心中想,原来我学的专业那么厉害啊,里面有很多很高端的东

ll333543的博客 639

C++学习笔记(一)

【代码】C++学习笔记(一)

qq_41878292的博客 421

C++学习一:C++介绍

什么是面相对象?这个问题可以说是c++面试中最基础的问题,也是区别c++与c语言的关键.我们要讲明白面向对象,需要先聊一聊什么是面相过程,我们都知道c语言是面向过程的语言,既然c++是从c语言的基础上扩展而来,那面向对象肯定也是从面向过程的思想上过渡而来.想要讲明白两者的区别,纯靠理论是无法讲明白的,我们要依靠生活中的例子去理解.就拿洗衣机洗衣服举例.如果是面相过程的编程思想,我们会注重于过程,也就是洗衣服的步骤,每一个步骤都是有一个或若干个函数实现第一步:将洗衣机打开第二步,把衣服放入。

hhh8866223的博客 824

【C++入门 一 】学习C++背景、开启C++奇妙之旅

学习C++背景知识、开启C++学习之旅

分享学习知识地方 1763

c++入门学习①

本篇文章介绍c++相关知识,在有c语言基础上学习c++.c++是在c的基础上增加了一些功能的稍微高级的语言,应用非常广泛,甚至另一门高级语言java也是由c++编写的,它完全可以实现面向对象程序设计,最早是本贾尼·斯特劳斯特卢(Bjarne编写的,刚开始被认为是带类的c语言,后来不断改进,最新的一版目前是2020年的。C++与C语言完全兼容,C语言的绝大部分内容可以直接用于C++的程序设计,用C语言编写的程序可以不加修改地用于C++。因此如果学习过c语言再学习c++会发现它有很多东西都学过了。

2301_79328557的博客 1875

C++学习进度一

1.1 C++书写HelloWorld #include<iostream> using namespace std; int main() { cout << "Hello World!" << endl; system("pause"); return 0; } 1.2注释 作用:在代码中加一些说明和解释,方便自己或其他程序员阅读代码 两种格式 1.单行注释://描述信息 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明 2.多行.

dangerouspeople_的博客 349

cpp学习(一)环境搭建

想起我刚写c++的时候,一把辛酸泪,最近下岗在家时间充裕,所以想整理一下学习c++的点滴,也巩固一下基础,希望可以帮到刚入坑的朋友们。最好准备一本c++Primer,我将对照此书提取重点,并将以前的小项目和大家一起写一遍。加油喽~电子版的C++Primer,百度网盘链接:https://pan.baidu.com/s/1C9sm6R9HVzFrbMM0hmCpFA 密码:05gt 一、 ...

weixin_33827965的博客 346

C++学习一走出迷宫

main.cpp //文件中的格式为 前两位数字代表地图 (高度与宽度) 然后两位是 (起点坐标) 然后两位是(终点坐标) //地图上如果是0代表不能走 1代表能走 // 真人认知算法 #define FILENAME "map.txt" #include "declear.h" #include #include #include using namespace std; using

HotIce0 1718
上一篇: MATLAB中FFT的使用方法
下一篇: C++学习总结(二 )
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值