c++第三课 关于代码的一些知识

行为树基本概念与BehaviorTree.CPP库在C++的代码实现 文章介绍了行为树的基本概念以及介绍了MIT开源的行为树实现库——BehaviorTree.CPP的使用,包含部分C++的代码实现 阅读详情

c++教程总目录

第一课:c++第一课 输出“Hello word”
第二课:c++第二课 输出自定义字符图形
第三课:c++第三课 关于代码的一些知识
第四课:c++第四课 定义int型变量、变量赋值与输出
第五课:c++第五课 输入
第六课:c++第六课 c++语言常用类型
第七课:c++第七课 加法算数运算
第八课:c++第八课 运算原理
未完待续……

c++第三课 关于代码的一些知识

了解本节课的内容后,有帮助你写代码和读自己或别人的代码的效率。
上节课我们学习了在屏幕上输出字符组成的图形,代码:

#include<iostream>
using namespace std;
int main()
{
	cout<<"    *"<<endl;
	cout<<"   ***"<<endl;
	cout<<"  *****"<<endl;
	cout<<" *******"<<endl;
	cout<<"*********"<<endl;
	return 0;
}

1.关于部分代码的省略

这样写虽然没错,但比较麻烦,每行都写cout和endl。
所以,cout和endl可以省略。
我们先看省略cout
编译器在编译文件时忽略换行、空格和注释,这三者也不占运行内存。上面的代码就可以写成以下形式:

#include          <iostream>
using namespace std;
int main()
{
	cout       <<"    *"<<endl;
	
	cout           <<"   ***"<<endl;
	
	cout     <<"  *****"            <<                       endl;
	
	
	cout                 <<" *******"<<endl;
	
	cout        <<"*********"<<endl;
	return 0;
}

当然,上面我只是走极端,大家写代码别写成这样,看起来很麻烦。
但这样编译器是通过的,也就证实了编译器忽略了换行和空格,关于注释待会讲。
既然编译器忽略空白字符(我们通常把换行空格称为空白字符),那么输出三角形的代码就可以写成以下形式:

#include<iostream>
using namespace std;
int main()
{
	cout<<"    *"<<endl
	    <<"   ***"<<endl
	    <<"  *****"<<endl
	    <<" *******"<<endl
	    <<"*********"<<endl;
	return 0;
}

编译器通过。是不是这样看起来舒服多了?
但你要把前几行的分号删了,因为这5行代码都属于一条语句。

接下来省略回车。
上节课我们讲了,有些字符不能正常输出,比如反斜杠“\”。
因为反斜杠有特殊含义。下面的表格就是反斜杠+字母的含义

组合形式效果
\n换行
\t等于Tab键
\a响铃一声
\\输出\

不好意思,我就记住这么点,大家如果好奇可以上网查。
哦,一看,\n等于换行,真好,可以代替那个麻烦的endl了!
于是上面的代码可以写成以下形式:

#include<iostream>
using namespace std;
int main()
{
	cout<<"    *\n"
	    <<"   ***\n"
	    <<"  *****\n"
	    <<" *******\n"
	    <<"*********\n";
	return 0;
}

这样也是可以的。
但最好不要这样写,因为\n属于引号内输出的内容,很有可能看迷糊了。
根据我的个人经验,超过两个endl在用\n,比如下面的一行代码:

cout<<"123"<<endl<<endl;

就可以写成:

cout<<"123\n\n";

但如果代码是这个样子:

cout<<"123"<<endl;

最好不要改,因为这样看上去方便一些,用\n很可能让自己或别人认为你要输出“\n”,很容易就会盯着屏幕,自言自语:怎么不输出呢?怎么不输出呢?
但这只是我的经验,也可以不吸取!

2.代码的注释

在写代码时,最好要养成写注释的好习惯。
因为:
比如你哪天写了一个10万行的代码,经过调试,正确!哈哈,好高兴呀,做下一道题!
两年后……
突然想起了那个10万行的代码,拿出来看一看,借鉴借鉴以前的思路。
一看,天哪!这一句什么意思啊?完了,从头梳理吧!
一星期后……
终于明白了,原来是这个意思呀!

这就是不写注释的后果!
注释就是为了你自己和别人明白你写的代码是什么意思,以防发生以上例子。
关于注释有两种写法:
第一种://
例如输出三角形的代码:

#include<iostream>
using namespace std;
int main()
{
	cout<<"    *"<<endl           //在屏幕上输出三角形
	    <<"   ***"<<endl
	    <<"  *****"<<endl
	    <<" *******"<<endl
	    <<"*********"<<endl;
	return 0;
}

我们就明白了,这个输出是输出三角形的!
虽然一眼就能看出来,但碰到较难的算法时,要没写注释,你根本不明白这一堆代码是干啥的。
这种注释只能注释一行,在注释符号//后面的内容全部被注释,注释的内容编译器自动跳过,同空格、回车一样,不占用内存
你在注释里些什么无所谓,就是写个cout也没事,反正编译器跳过。

另一种是注释多行的。
比如你要把cout那五行全注释,就得一行一行来,麻烦!
所以,用这种:
/*
*/
比如:

/*
	cout<<"    *"<<endl
	    <<"   ***"<<endl
	    <<"  *****"<<endl
	    <<" *******"<<endl
	    <<"*********"<<endl;
*/

也可以:

	/*cout<<"    *"<<endl
	    <<"   ***"<<endl
	    <<"  *****"<<endl
	    <<" *******"<<endl
	    <<"*********"<<endl;*/

文字注释的那一段也可以:

cout<<"    *"<<endl           /*在屏幕上输出三角形*/

编译器从反斜杠星号到星号反斜杠(不知道为什么,打不出/*,所以汉字代替)之间的所有文字全被注释。
如果你在注释结束符后面写个cout,就会报错!
要是在里面。就没事。可能读起来比较费事,我们用代码来展示一下:

cout<<"    *"<<endl           /*在屏幕上输出三角形*/cout

报错!

cout<<"    *"<<endl           /*在屏幕上输出三角形cout*/

通过!

好了,本节课就到这里了。

由于作者水平有限,文章中难免有误,请大神们给出指正!

下一课:c++第四课 定义int型变量、变量赋值与输出
上一课:c++第二课 输出自定义字符图形

MATLAB调用CPP代码 1.环境要求 电脑上同时安装VS及Matlab(本人是Matlab2015b 与VS2015) 2.配置方法 在Matlab命令行窗口中输入:mex -setup 并回车 选择第一个选项,完成VS2015的配置 3.编写cpp文件 在VS中编写CPP文件 #include “mex.h” double add(double x, double y) { return x + y; } //设置... 阅读详情

相关推荐

【C++】使用 yaml-cpp 库操作 YAML

配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。YAML 是一种人类可读的数据序列化格式,它使用缩进和特定的符号来表示数据结构。在本文中,我们将详细介绍如何在 C++ 中使用yaml-cpp库来解析和生成 YAML 格式的数据。

coco的专栏 4971

C++中反斜杠作用“\”

今天看了一下vc自带的一些头文件的内容,看到很多语句后面都有反斜杠,在印象中就只有//是表示注释功能的,但是反斜杠也只是一个转义字符来的。但是语句后面再加一个反斜杠,还真没见过!查了一下,原来是这样的: ①转义字符;如:\n表示回车+换行等。 ②续行符;这个需要注意一下,在一般的语句中,这个有和没有事没关系的,编译器编译的时候会自动把两句连在一起(注意是把第二行原原本本从开始第一个字符(包

ismallboy的专栏 2万+

C++ Yaml文件解析安装及使用 yaml-cpp

C++ Yaml文件解析安装及使用安装 yaml-cpp克隆官方库编译 yaml-cpp示例代码robot.cpprobot.yaml编译 robot.cpp运行结果难点分析与总结什么是 .a 与 .so 文件静态链接库(.a) 与动态链接库(.so)静态链接库动态链接库g++(gcc)编译选项参考文章 安装 yaml-cpp 克隆官方库 git clone https://github.co...

Fourier_Legend的博客 2万+

java开发程序员转行可以做些什么?

java开发程序员转行可以做些什么?

隔壁王叔的博客 5871

C++ 网络库 cpp-netlib的简单使用

示例代码 (C++11, cpp-netlib版本:0.12.0) 需要链接库文件 target_link_libraries(app boost_system network-uri cppnetlib-server-parsers ) #include <network/uri.hpp> #include <nlohmann/json.hpp...

逗神大人的博客 6220

使用Gradle编译C++代码并添加CPP插件

在开发C++项目时,使用Gradle作为构建工具可以提供便捷的构建和依赖管理。以上步骤完成后,你就可以使用Gradle来构建和管理你的C++项目了。通过添加CPP插件,Gradle会自动为你创建构建任务,并处理C++的依赖关系。这是一个简单的示例,帮助你开始使用CPP插件在Gradle中编译C++代码。注意:确保你的电脑上安装了正确的C++编译器,并且Gradle能够找到它。接下来,我们创建一个新的Gradle项目,并进行以下配置。部分定义了我们的主要组件,包括源代码的位置和导出头文件的位置。

ByteEchoX的博客 649

【C#】关于代码的一些小知识

各个代码块的含义一个命名空间可以包含多个类;一个类中只能包含一个Main函数(一个程序只有一个主入口),可以由多个方法(函数);目前我们写代码都在Main函数里面写。注释给程序员和开发者看的写在代码的上边或右边 单行注释://注释内容 多行注释:/*开始….…..结束*/文档注释:///    ///文档注释     ///文档注释在方法或类的上一行输入///就会产生。         ...

~悟空的定海神针~ 495

f2cpp-开源项目:将Fortran代码转换为C++的Python工具

f2cpp是一个将Fortran 77代码转换为C++代码的工具。它的出现是为了帮助那些仍然在使用Fortran 77进行科学计算的开发者和研究人员。通过这个工具,他们可以将Fortran 77代码转换为C++代码,从而在新的计算环境中运行。开源软件(Open Source Software)是指源代码公开的软件,其开发过程和最终成果都可以被任何人查看、修改和分发。这种模式起源于1998年,以促进软件创新和质量提升为目的。开源社区通常会围绕这些项目形成,社区成员自愿参与项目的开发和维护工作。

weixin_42181686的博客 1922

C++重要知识点及示例代码

抽象的定义:抽象是对具体对象进行概括,抽出这一类对象的公共性质并加以描述的过程。 封装:将抽象得到的数据和功能相结合,形成一个有机的整体。 类的定义:类是对逻辑上相关的函数与数据的封装,它是对对象的抽象描述。 • 对象:对象是该类的某一特定实体,即类的变量。 • 构造函数:构造函数的作用是为对象分配存储空间,并将对象初始化为一个特定的状态。 示例代码: #include<iostream> #include<string> using namespace std; class Veh

Justin Coder的博客 532

“Agent Harness”和“Harness Engineering”

摘要:2026年AI工程化领域,"Agent Harness"(AI代理运行控制系统)与"Harness Engineering"(马具工程方法论)常被混淆。前者是管理AI代理非推理事务的技术实体(工具调用、记忆管理、安全约束等7层架构),后者是设计优化该系统的工程学科。研究表明,优化的Harness设计可使同一模型性能提升10倍。两者关系如同"马具"与"制具工艺":Harness Engineering指导Agent Harn

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 837

axi时序图_(AXI)握手协议(pvld/prdy或者valid-ready)中ready打拍技巧

内容提要ready打拍的问题用FIFO的思路去解决用Buffer的思路去解决问题提出:ready时序如何优化?在valid/ready 握手协议中,valid 与 data的时序优化比较容易理解,(不熟悉valid/ready协议或者valid打拍方法的)大家可以参考上次推送(握手协议(pvld/prdy或者valid-ready或AXI)中Valid及data打拍技巧)。 但是有时候,关键路径是...

weixin_29763641的博客 3323

代码小知识点汇总2

1.关于app页面生成图片下载保存 再次过程中需要注意的是我们要通过 jquery.qrcode.js 和 html2canvas.js 两个文件 使用过程中文件的线下引入和线上使用(线上是为了方便) 在生成二维码的过程中:首先需要将二维码转换格式 在创建二维码的过程中: 在保存下载以便于分享的过程中: 注意:再次过程中,完全借鉴...

weixin_30597269的博客 171

OpenClaw的引导配置(onboard)流程

脚本安装的直接安装完到引导配置界面,其他安装方式还可以直接命令到配置。

supersolon的专栏 1324

第三课 巩固for循环

上次我已经讲过了for循环的概念,但对应用童鞋们都是一知半解,在这之前,先给大家补一个知识点:if其实有一个劲敌,那就是elae,“否则”的意思。家人们,我在第二期说粉破15出第三课,结果刚发就涨到了16,苦啊!那么我们进入实战:请在循环里面输入12个a,如果是2,就输出当前循环次数,否则输出0。第三课的内容是for循环的那些事,由于觉得第二课太粗糙了,这节课我跟你们细说一下;当我们输入0的时候,条件为真,就输出n,那如果是假,否则语句运行,输出no。

2402_82814554的博客 467

Qt开发实战:QWebEngineView缓存路径详解与自定义配置(Windows/Linux)

本文详细解析了Qt框架中QWebEngineView组件的缓存机制,提供了Windows和Linux系统下的默认缓存路径及自定义配置方案。通过实战代码示例,展示了如何实现跨平台缓存路径管理、权限设置以及企业级应用中的多用户隔离策略,帮助开发者有效管理Web内容缓存,提升应用性能和数据安全性。

weixin_42519826的博客 403

主流双目相机技术参数横向评测:从ZED到国产新锐

本文对主流双目相机技术参数进行了横向评测,涵盖ZED、Bumblebee等国际品牌及国产新锐产品。详细分析了分辨率、帧率、视场角等关键参数,并针对机器人导航、AR/VR交互、工业检测等场景提供选型建议。特别推荐ZED相机在科研领域的成熟应用,以及国产方案在长基线设计和主动双目技术上的创新突破。

weixin_33670786的博客 318

Cpp入门基础

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下 ⾯的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。

2401_86658278的博客 5137

手写中间件之——并行框架(1 并行框架的应用场景和需求)

我们为什么会需要一个带任务顺序编排的并行框架 1 复杂的微服务系统间调用 经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。 譬如用户请求“我的订单”,后台在收到请求后,就需要去调用用户详情rpc、商品详情rpc、库存rpc、优惠券rpc等等很多个服务。有些服务是可以并行去请求的,但有些服务...

tianyaleixiaowu的专栏 1万+

C++中的 .h 和 .cpp 详解

通俗解释:.h和.cpp差不多就像书和目录的关系吧,目录中对书中的章节和内容进行简单表示,真正的实现是在书里面的。 一般的数据,数据结构,接口,还有类的定义放在.h文件中,可以叫他们头文件,可以#include 到别的文件中。功能实现一般都放在具体的.cpp文件中,这样方便文件管理,节约时间,提高效率。 你完全可以把功能实现一并放在.h文件中,也可以#include一个.cpp文件到另一个源文件中...

a063225的博客 2万+

5、快速入门

点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。

leyoliu的博客 3501

总结一下:电源设计 ≠ 画个电路图就完了

如果你面对一块电源板时,只知道输入输出是多少伏,那你离真正懂它还差十万八千里。你要懂拓扑、理解工作原理、看懂波形、会分析环路、熟练选型,还得懂调试、EMC和热设计——才能自信地说:“我会搞电源了。电源不是一个人能独挑的“电”,而是控制、模拟、热、EMC 多学科交融的“多面体”。这也是为什么它既复杂又迷人✨。

weixin_43199439的博客 144

Delphi2Cpp - Delphi代码转换为C++代码工具

Delphi2Cpp - Delphi代码转换为C++代码工具 【下载地址】Delphi2Cpp-Delphi代码转换为C代码工具 Delphi2Cpp 是一款高效便捷的代码转换工具,专为将 Delphi 代码无缝转换为 C++ 代码而设计。它支持单文件转换,操作简单,只需几步即可完成整个转换过程。尽管转换过程中界面可能...

gitblog_06723的博客 554

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C++中.cpp和.hpp的区别

c++中 cpp和hpp 首先,我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。一个.cpp对应一个.obj,然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。 链接器将所...

Qzx9059的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

探索 Rust-CPP:在 Rust 中直接嵌入 C++ 代码的创新方案

`rust-cpp` 是一个令人眼前一亮的构建工具和宏库,它允许您直接在 Rust 代码中编写 C++ 代码。这个项目的核心目标是打破语言间的障碍,让开发者可以无缝地在 Rust 和 C++ 之间切换,同时保持高效的性能和清晰的代码组织。 ## 项目技术分析 `rust-cpp` 的工作方式非常独特,它提供了一个宏,让您可以在 Rust 函数内部直接书写 C++ 代码块,并确保它们能够正确编译...

gitblog_00079的博客 909

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++ 在一个cpp文件中使用另一个cpp文件中定义的函数

C++ 在一个cpp文件中 使用另一个cpp文件中定义的函数建立一个console项目头文件cpp文件main.cpp 建立一个console项目 以dev为例,在【文件】【新建】【项目】,新建一个console项目。 头文件 添加新文件,输入说要使用函数的声明,保存为.h文件。 int add(int a,int b); cpp文件 定义在.h中声明的函数,保存为.cpp文件。 #include<iostream> #include"chen.h"//不要忘记这个 int a

m0_43456002的博客 9263

Delphi2Cpp-Delphi代码转换为C++代码工具:项目核心功能/场景

Delphi2Cpp-Delphi代码转换为C++代码工具:项目核心功能/场景 【下载地址】Delphi2Cpp-Delphi代码转换为C代码工具 Delphi2Cpp 是一款高效便捷的代码转换工具,专为将 Delphi 代码无缝转换为 C++ 代码而设计。它支持单文件转换,操作简单,只需几步即可完成整个转换过程。尽管转...

gitblog_06718的博客 446
上一篇: c++第二课 输出自定义字符图形
下一篇: c++第四课 定义int型变量、变量赋值与输出
bnsarocket
博客等级 码龄7年 97粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值