惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Vercel News
Vercel News
P
Palo Alto Networks Blog
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 最新话题
阮一峰的网络日志
阮一峰的网络日志
C
CXSECURITY Database RSS Feed - CXSecurity.com
Google DeepMind News
Google DeepMind News
Project Zero
Project Zero
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
The Last Watchdog
The Last Watchdog
博客园_首页
D
Docker
MyScale Blog
MyScale Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Hacker News
The Hacker News
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
The Blog of Author Tim Ferriss
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
S
Schneier on Security
C
Check Point Blog
I
Intezer
S
Securelist
雷峰网
雷峰网
小众软件
小众软件
C
Cyber Attacks, Cyber Crime and Cyber Security
PCI Perspectives
PCI Perspectives
S
Security @ Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
量子位
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
A
About on SuperTechFans
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
F
Fortinet All Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
Security Archives - TechRepublic
Security Archives - TechRepublic
Latest news
Latest news

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测 505游戏母公司现已收购《明末:渊虚之羽》IP | 机核 GCORES 基石 手动杂谈12|格斗游戏也能讲好故事 | 机核 GCORES I Love You Mr Snowball 我的向日葵小姐 会比GTA6先发售吗?最硬核的生存游戏《DAYZ》要推新DLC了 周记02:在2026遇到新怪谈 什么硬件,能让游戏Loading界面快速消失? | 机核 GCORES GadioSpec《百年风云世界杯》免费试听集 | 机核 GCORES 百年风云世界杯Vol.1丨足球崛起 | 机核 GCORES 100年前,一群人提前替我们经历了AI恐惧 | 机核 GCORES 《呼啸山庄》2026 ——一辆当代艺术的大卡车冲撞了我的大脑 手游《天穗之咲稻姬:日之香巡灵传》宣布将于7月27日停服 | 机核 GCORES 集结梦之队,征战世界杯,《最佳球会ONLINE》上线Steam 山水绝景随心拼 休闲建造游戏《千里山河录》Steam商店页公开 巫师帽、法袍、魔杖,为什么它们是影视、游戏里的法师必备三件套? 《无鞘信使》-第一章 复古风自动战斗肉鸽《终结之终结》Steam商店页面现已上线 电脑里有一款不破不立的MMO,录音笔VOL.688 | 机核 GCORES 《生化危机》30周年纪念周边发售,这次是真的“保护伞” 可靠耐用+AI全能,惠普战66 2025锐龙版深度体验 《时之书:无尽终章》关卡“大航海时代”全球首次公开 经典名作《乌龙派出所》改编经营模拟游戏《乌龙派出所~阿两的商店街物语~》正式宣布支持简体中文 明日开冲,解锁反套路三国互动影游《代号三国:龙起》即将上线 独立游戏《这是我的宝藏!》已发售~ 降低难度不是唯一解,无压力死亡也是好体验 Netflix官宣新片《普通人》:讲述韩国现代史上的权力风暴 《生化危机:安魂曲》全球销量现已突破700万份 《绝地鸭卫》PC版5月15日正式发售 亡妻回忆录?女性向情感叙事游戏《S-mail》现已正式发售 全新酷黑风格,酷睿Ultra 200S PLUS的高性价比搭档!七彩虹BATTLE-AX B860M-PLUS S WIFI7 V20 超级黑刃主板测评 胖狗 索尼发布了港台地区PS5产品价格调整公告,将于5月1日起实施 二次元怪猎+性感美女!《碧蓝幻想:无尽黄昏》开启Beta公测 这款怪谈类型中式恐怖游戏居然更新了?! 《百日战纪 -最终防卫学园-》改编漫画将于今年冬季开启连载 《如被附身,请致电我们》:匈牙利黑色幽默恐怖小说 《竹屿山房杂部卷五》(译文) 大树 超越引擎 摄影分享丨四月 碎片杂记vol.72 当老式FPS与老式动画技术碰撞出新时代的火花—《神探杰克鼠》 想做独游,如何避免首个项目就褒姒? 在线多人动作游戏《OCTOPinbs》将于5月12日上线Steam! 《酒鬼女神的酒诡》确定将于2026年登陆Steam 《CRYMELIGHT》将于11月5日(周四)正式发售!4月25日开始预购! 钢铁国度MKI部落Evolution,蛮兵部分 【钢铁国度】部落-Primal MK I,蛮兵部分 这是一个高中生用ai跑出来的作品,我自称他为物理神话 钢铁国度MKI部落Metamorphosis,蛮兵部分上 钢铁国度MKI部落Metamorphosis,蛮兵部分下 INDIE Live Expo于4月25日举办:首发9款新作,超200款独立游戏亮相 暗黑卡牌策略新作《魔忌:穷鼠啮狸》发布全新中文试玩版和发售预告片,4月30日正式上线在即 战锤40K长篇小说:变节者・苦难主宰(三)(全书完) 战锤40K长篇小说:变节者・苦难主宰(二) 战锤40K长篇小说:变节者・苦难主宰(一) 英语语言学习丨短语专题1:短语的特点 唯一的EVE战争 【少前同人】【M200】战术人形会梦见音乐会吗 【昏迷3】即将发售,前作主角悉数到场!“恶灵”宋老师化身可操控角色 业内人士:游戏公司“十有八九”使用生成式AI,包括卡普空 欢庆一周年:《光与影:33号远征队》全新纪念艺术图、超值折扣与免费更新同步上线 才刚刚开始呢 【抽奖】《星际卡车司机》推出免费大型更新,四折平史低折扣进行中 四人合作FPS游戏《佣兵猎手》抢先体验重大更新 1 现已上线 Raw Fury新作《深馅地牢 Deep Dish Dungeon》将于今秋加入 XGP 塔防幸存者游戏《魔怪来袭》推出首个 DLC 《饿狼传说:群狼之城》1周年纪念!新DLC“沃尔夫冈·克劳萨”今日参战 猫狗相伴 欢乐闯关 双人合作平台跳跃游戏《猫狗同行》上线Steam商店页 《同行:月球逃脱》(Together: Moon Escape)上线将于明日上线Steam
游戏开发相关,C++教程(一)
AC130熊 · 2024-11-16 · via 机核

1. ALGORITHM INTRODUCTION /算法简介

  • 单词解释:Algorithm(法语algorithme)通常意义上被翻译成“算法”或“演算法”。 “算法”一词源自波斯数学家花拉子密的名字(Al-Khwarizmi)。他撰写的《代数学》(al-jabr)奠定了代数学的基础,其研究成果也对计算技术产生了深远影响。他的著作经翻译传入欧洲后,“algorithm”一词逐渐演变为“算法”的代名词,指代解决问题的一系列逻辑步骤

全名:Muhammad ibn Musa al-Khwarizmi 穆罕默德·伊本·穆萨·花拉子密 (大约780年—850年),波斯-阿拉伯著名的数学家和天文学家。代数学的创始人,现代数学的重要奠基人。曾任“巴格达智慧之家”大学士,翻译,钻研,总结如阿基米德,欧几里德等希腊数学家的著作后发表著名的《代数论》。至此开辟了现代数学两大门类之一的代数学(Algebra,即阿拉伯语的‘平衡’之意)。

花拉子密被认为被第十代哈里发——穆塔瓦基勒(在位847——861)即位后推行强硬伊斯兰教法后遭到迫害,普遍认为他死于公元850年。事实上瓦基勒早在穆阿台绥姆末期就掌握大权并推行伊斯兰教法造成大量学者出走或被迫流亡,被视为欧洲文艺复兴的原因之一,同时终结了阿拔斯王朝的黄金时代。

  • 1.1 Algorithm definition/算法的定义

算法(Algorithm)是指一组有限的、可行的步骤,用于解决特定类型的问题。一个算法应满足以下特性:

  • 通用性:能够解决某一类问题,而非单一问题。

  • 有限性:算法必须在有限的步骤内结束。

  • 明确性:每一步操作必须清晰、无歧义。

  • 可执行性:每一步操作都能够被执行,最终得到结果。

  • 1.2 Algorithm properties /算法的属性:可读性,通用性,精确性,简洁性,结构性。

  • 算法的五大属性

  • 可读性:算法的逻辑应当清晰易懂,即使是非专业人士也能通过简单解释理解其核心思想。

  • 通用性:算法应具有抽象性,能够适用于不同的编程语言和环境。

  • 精确性:每一步都必须明确且无歧义,能够被精确执行。

  • 简洁性:应尽量精炼,避免复杂的冗余步骤。如果算法过于复杂,可以分解为多个子算法。

  • 结构性:算法应具有清晰的模块化设计,便于理解和实现。

  • 1.3 Algorithm method/算法方法论

算法方法论可以总结为三大步骤(注意:这三步并非独立存在,彼此相关联):

  1. 输入(INPUT):确定问题的性质与范围,描述其基本要素。通常包括整数、实数、字符串、数组等数据类型。

  2. 输出(OUTPUT):明确问题的目标,即希望得到的结果。例如求和、求余、排序、嵌套等。

  3. 方法(PROCESS):通过一系列的逻辑步骤,从输入得出输出。常用的方法包括条件判断(if-else)、循环(for/while)、递归等。

  • 1.4 ALGORITHM VS PROGRAMMING LANGUAGE

ALGORITHM(算法)

  • 一系列明确的、有限的指令,用于解决某类问题。

  • 用抽象的语言描述,按逻辑顺序执行。

  • 与具体编程语言无关,但可以被任何编程语言实现。

PROGRAMMING LANGUAGE(编程语言)

  • 人与机器的桥梁,用于将算法翻译为机器可以理解的指令。

  • 提供语法和语义,用于编写过程、函数或模块以执行算法。

  • 不同语言适用于不同的应用场景,例如 C 适用于系统编程,Python 适用于快速开发。例如【平均数】

  • ALGORITHM(实例演示为伪代码) & PROGRAMMING LANGUAGE(以C++示例):

2.THE INSTRUCTION, THE SEQUENCE OF ALGORITHIC/算法的指令与序列

  • 2.1 指令/THE INSTRUCTION

  • 程序中的一个步骤

  • 指示计算机在执行下一条指令之前需要执行的操作

  • 基本操作

  • 由处理器理解和执行

  • 2.2 序列/THE SEQUENCE

  • 一系列按顺序执行的指令,在所有处理情况下都按它们的书写顺序执行

  • 由开始和结束(即bloc)界定

  • 开始

  • 指令1

  • 指令2

  • 指令N

  • 结束

3.C与C++相关

  • 3.1C与C++的历史:

C语言诞生于1972年由 丹尼斯·麦卡利斯泰尔·里奇(英语:Dennis MacAlistair Ritchie,1941年9月9日—2011年10月12日) 和 肯尼斯·蓝·汤普逊(英语:Kenneth Lane Thompson,1943年2月4日—) 为了移植,开发UNIX,于贝尔实验室,基于B语言开发

而C++是1983年基于C语言,由丹麦数学家,计算机科学家比雅尼·斯特劳斯特鲁普Bjarne Stroustrup 1950年12月30日— )开发而来。

值得一提的是,大量的C语言的Unix使用者,也包括C语言之父汤普逊并不喜欢C++,认为它繁琐。更令人难以忍受的是,C++还将程序的本身分为了“函数Fonction”与“过程 Procedure”两类(这是一个很重要的概念,但今天与我们的主题无关暂且不表)。巧的是,不仅是他们这么认为,用C++的人和设计C++的人也是这么认为的。

尽管如此,C++ 的广泛应用不可否认。它被称为“一用就骂,骂完就用”的工业编程语言,承载着现代工业软件开发的许多任务。

  • 3.2 C与C++的异同,以求a+b的平均值为例

在 C 语言中,平均值的计算通常使用 scanf 和 printf 实现输入和输出。它们基于格式化字符串,虽然语法简单直接,但需要手动管理输入输出的格式,不够灵活。

在 C++ 中,则使用 cin 和 cout 进行输入输出。cin 和 cout 是基于流的输入输出机制,提供了更现代化的接口,且更加面向对象。但它们的语法略显冗长,例如需要通过 ‘<< ’ 和‘ >>’ 操作符分隔输入输出。

在 C++ 中,#include 是一个预处理指令,表示在编译之前将指定的头文件内容包含到程序中。<iostream> 是一个标准库头文件,它提供了输入输出流(input/output stream)的功能。通过它,我们可以使用 cin 和 cout 进行输入输出操作。

值得注意的是,iostream 是由 io(input/output) stream(流)两个部分组成的,而不是 ios-tream,和苹果无关

随后的:

using namespace std;翻译为:使用/using 命名空间/namespace 标准/std, (stand)的简写。std 是 C++ 标准库的命名空间,包含了常用的标准库功能,比如 cin、cout 和 vector 等。

什么是命名空间?举个例子:

一觉醒来的老白终于穿越到了他梦想的国度——苏联。还成了一名光荣的苏联红军战士。老白高兴地走在路上,迎面也走来一名军人。

军人:你哪个部队的?

老白:我是一营二连二排三班的!

对面的军人Bia一枪就把老白给毙了说:“我就是我就是一营二连二排的排长,我没见过你!你一看就是契丹人派来的间谍!

苏联解体之后终于真相大白,源濑老白(不是错别字)另一个团一营二连二排三班的。就是命名空间的一种。

顺便科普一个军事常识,绝大多数情况下当有人问某个人是“哪个部队的”,在全世界绝大多数情况下这个“部队”都是指“团或及其以下。(即番号)

类似地,命名空间也是用来区分不同“”的机制。例如:

命名空间的作用是为了区分不同模块中的同名对象,避免命名冲突。类似于“部队编号”系统,能够确保每个代码模块都有唯一的标识。

程序执行过程的内存分布代码解释

main函数 float a, b; // 声明局部变量 (栈区)

cin >> a >> b; // 从输入缓冲区获取数据

cout << (a + b) / 2 << endl; // 输出平均值

return 0; // 栈区释放

  • 单词:stack/栈

一看中文,你就懵逼了。但在英语种stack的含义十分清晰而且直观。就是堆叠的意思。例如

stack on,指飞机降落,尤其是体型庞大的客机或运输机。

更有意思的是,编程中拥有一个原则,后进先出(LIFO),也和它的直观感受一样符合程序运行原理。

如上图,最下面的是Ice-bear,他是最先进入‘栈’的,其次是胖达(Panda),Grizz灰熊是最后一个入栈,入栈被称为push。而它们要下来(出栈)的话则是相反,Grizz先下,胖达随后,Ice-bear最后,这个被叫做“出栈”,英语即pop,这就是程序中所谓的“后进先出”(LIFO Last In First Out )原则。

举个例子:你在写文章,修图片的时候不小心误操作下意识地按下CTRL+Z,这就是栈的经典的应用,回溯上一步操作的行为叫做pop/出栈,记录上一步操作叫做push/入栈。

每次你的操作都会进入内存,简称入栈(push)就像你输入HELLO的时候

此时,栈底 [H, E, L, L, O] 栈顶

CTRL+Z,即将O弹出(pop),称为出栈,从而回到

HELL

总结

  • Push(入栈): 将数据放到栈的顶部。

  • Pop(出栈): 从栈的顶部取出数据。

今天没有作业,因为快超字数了。下一课我们来讲算法和C++的布尔运算,变量,常量类型,书写规范以及语法。

推荐读物,可以帮你了解pseudocode的书写规范: