当前位置: 首页 > news >正文

Study Experience (暑假篇 4)

也是好久没有更新了,现在把电脑搬到寝室了,最近一就不在状态,这一篇不写C语言的算法题了,这一篇记录一下我 c 转 c++ 的一些知识点,也希望对一些 c 转 c++ 的朋友们有一些帮助,因为我也看了很多关于 c++ 的网课,但是很少有 c 转 c++ 的网课,且大部分类型的都比较拖延,对于我这种花很多时间学习了C语言的我并不想从头去学 c++ ,因为我觉得这两种语言有太多互通性,既然学了C语言就不需要再去重头学习 c++ 了。所以这一篇也算是我对我初学 c++ 的一个心得与知识总结,我现在唯一觉得学习效率比较高的博主是b站上的别喷我id,这就是博主的名字噢。

现在是你曾经空中的未来

不论怎么说,再颓废,也要坚持做下去,即使学的很少很慢但至少比不学、荒废时间要好很多。 那我也从 c++ 的最开始去讲吧。

1.关于头文件差别

#include <iostream> using namespace std; int main() { 略; }

#include <iostream> 就是 c++ 的头文件,跟C语言的 #include<stdio.h> 差不多一个概念,底下的也差不多,只需要记下这两段代码就可以开始使用 c++ 的一些基础编程。而C语言和 c++ 一样都是用 int main() 的,这里就不过多解释了。

当你想使用一些关于字符或排序等等的库函数时,你需要添加一些别的头文件。例如:

#include <cstring> //与C语言中的 #include <string.h> 一样 #include <cmath> //同上 #include <queque> //学过数据结构的就知道queque是队列 #include <vector> //略 ...................

也就是说 c++ 中的很多头文件都与C语言中的很多头文件以及所学知识密不可分。

当然学到后面我们就可以知道头文件可以使用如下的方法:

#include<bits/stdc++.h> using namespace std;

这样就不用写这么多头文件了,直接一个头文件就可以覆盖很多了,对于新手还是很友好的。

2.关于输入输出

这算是我刚接触C语言第一个任务了,就是输出 hello world 所以在此重温经典,使用 c++ 输出。c++ 的输出与C语言不同,cout是专属于 c++ 的输出方式,当然你要是想你也可以使用 printf 因为 cout 似乎也并不是很好,但是毕竟是 c++ 的一个特性,所以还是要了解的,cout 这个也很好记,在我看来就是把 cout 拆分一下就好了,c 单独出列代表的意思就是是 c++ 吧或者说是 c 类型的语言,而 out 就是 “出” 的意思呗,然后再接下来添加两个箭头 << 就行了,这个就是要记住的。我觉得只要有些英文常识就很好理解记住了。代码如下:

#include <bits/stdc++.h> using namespace std; int main() { cout << "hello world"; return 0; }

接下来是 c++ 完整的输入输出,cin 的理解方式也是同 cout 一样,但是我们会发现上面的输出内容使用了冒号,但这里没有,没错,当我们输出一个变量的时候我们就不能使用冒号框住了,简单理解就是当我们像输出一个可以改变的东西是不能用冒号的,当我们只想输出一段固定的文字时就需要冒号。还需要注意的就是 cin 后面接的两个箭头是 >> 这样的(往左的)与 cout 不同。最为万众瞩目的就是 endl 了,看着很陌生是吗,其实就是C语言中的换行符 \n ,不是数字 1 噢,是字母 l 噢。

#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; cout << n <<endl; return 0; }

那么还有一件事,就是要是想连续输入输出的话要怎么办呢,所以我们要将不同的 “量” 分开,例如:

#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; cout << n << endl << m; return 0; }

这里就不多说了,反正就是两个箭头只能输出或输入一个“量”就对了。那 c++ 的输入输出就到这里了。

3.bool变量 const定义

我相信学习C语言较久的话,对这两个东西应该都不陌生,只是可能用处并不多,也并不是很复杂很牛逼的一个知识点,所以我也就随便穿插一下。

先从 bool 开始说,很简单,它其实就可以理解为一个 只能赋值0 和非 0 值的定义类型(就像 int double 一样,都是可以给它定义的变量赋值的),通俗点就是它的作用是判断真和假。代码如下:

#include <bits/stdc++.h> using namespace std; int main() { bool a=true; bool b=-1; bool c=0; cout << a << " " << b << " " << c << endl; return 0; }

编译后的结果就是 1 1 0,这里也不做过多解释。

来看看 const 的用法,用于声明常量不可修改的实体,其核心作用是保护数据不被意外修改,看文字也许看不懂,那就看代码:

const int a = 10; // a 是常量,不能被修改 a = 20; // 错误:常量不能赋值

也就是说只要我用 const 定义了这个东西,那么我就不能再次更改了,跟使用define定义一个意思。

4.关于c++字符串入门

学过C语言的应该对字符串不陌生,但是从严格意义上来说C语言是没有字符串的,只能通过数组和指针的方式去使用,所以我们在使用C语言做字符串的相关题目时会显得吃力,但是 c++ 解决了这个问题,它有专门的字符串类型———string 类。

#include <string> using namespace std; // 简化代码,否则需写 std::string int main() { string s1; // 空字符串 string s2 = "hello"; // 直接初始化 string s3("world"); // 构造函数初始化 string s4 = s2; // 拷贝初始化(复制s2) string s5(5, 'a'); // 重复字符:"aaaaa" string s6=s2+s3; // 就是将s3粘贴在s2后方 return 0; }

应该是非常好理解的,string s3("world") 等价于 string s3 = "world",而且 c++ 里面可以直接将一个字符串直接赋值给另一个。

接下来就是字符串的输入与输出:

#include <bits/stdc++.h> using namespace std; int main() { string s; //定义 cin >> s; //输入 (如果输入多个字符,例如:i love you) cout << s; //输出 (那么输出时候只会输出 i,因为输入只能识别一个单词) return 0; }

这是最简单的输入输出方式,但只能满足一次输入输出一个单词,所以我们要学习 getline 的用法,让我们可以一次性输入输出多个单词。

#include <bits/stdc++.h> using namespace std; int main() { string s1; getline(cin,s1); cout << s1; return 0; }

只需要改变 cin 就行了,cout 照常为输出,getline 的使用方法就是括号里面先写 cin 然后再写上你所需要输入的变量就行了。

5.字符串的一些处理

在C语言中求一个字符串的长度时,我们最简便的方法就是使用 strlen(变量) 来得出字符串的长度,我们还需要包含一个 string.h 的头文件。但在 c++ 中我们可以在使用这个万能头文件后,可以采用以下方式:

#include <bits/stdc++.h> using namespace std; int main() { string s1; getline(cin,s1); cout << s1.length(); //若是定义的是s2、s3,就是s2.length...... return 0; }

注意在输入时,尽量还是使用 getline,因为 cin 依旧只能输入一个单词。

接下来再介绍一个 substr() 的使用方式:

#include <bits/stdc++.h> using namespace std; int main() { string s1="hello world!"; // h为第零个字符 string s2=s1.substr(6,5); // s2截取s1第六个字符开始 之后的5个字符 string s3=s1.substr(6,8); // s3即使超出了s1的额度了 但依旧将其后面的全部截取掉 string s4=s1.substr(6); // s4截取第六个字符开始之后的所有字符 cout << s2 << " " << s3 << " " << s4; return 0; }

自己可以试着尝试编写运行一下,这样可以更好的理解其用法。


这一次也就更这么多,已经从学校回来了,争取在家里可以多更几篇。

希望这个月就可以通过 c++ 来写算法题了。

http://www.jsqmd.com/news/1174762/

相关文章:

  • Codex MCP Server 配置教程:让 Codex 连接文档、浏览器和开发工具
  • Arduino IDE 2.2.1 配置 TFT_eSPI 库:3个关键文件修改与240x240屏幕驱动避坑指南
  • 3步解决Vision Transformer性能瓶颈:pytorch-image-models实战指南
  • 杭州百达翡丽回收价格查询及各大回收平台实测排行(2026年7月最新) - 百达翡丽服务中心
  • 如何快速配置ComfyUI-Impact-Pack:面向初学者的完整指南
  • SolidWorks 2020-2025 全版本小金球开启:N卡/A卡 3步注册表修改法
  • IntelliJ IDEA 2024.1 + Maven Profile:3种环境切换方式与常见失效排查
  • 仅限首批500名开发者获取:LLM-Ops团队封存2年的级联调用性能基线报告(含Qwen/GLM/Claude三系Agent压测数据)
  • 现在似乎所有广告都会有“广告”这个标识
  • 【仅剩最后200份】Midjourney氛围工程手册(含独家LUT预设包+12类经典影视氛围Prompt模板)
  • 5分钟实现《原神》帧率自由:终极性能释放方案
  • macbook批量添加视频字幕?5款自动加字幕横评实测
  • prompt-ops扩展开发:创建自定义优化策略的开发者指南
  • 如何用KLayout实现芯片版图设计:从新手到专家的完整指南
  • 湖北大学小自考本科行政管理专业 2026 年招生简章【在职人员专属・官方助学点发布】 - 湖北找学校
  • 基于Bluetooth 5.4与STM32的无线音频系统设计
  • 0 基础入门React Native鸿蒙跨平台开发:Platform 模块检测运行时环境并实现跨平台适配的核心工具
  • 常州收藏!全城6家靠谱黄金回收店铺大盘点,清奢、鑫宸、璟安等各区县都有! - 新芸鼎珠宝首饰
  • 3款主流CAN分析仪软件对比:创芯科技CAN Tool vs 周立功CANTest vs ZCANPro
  • Unity 之 LineRenderer
  • 3款数字人建模方案对比:Blender多边形 vs DAZ辅助 vs AI生成,效率与质量实测
  • VMware 17 Pro虚拟机安装Ubuntu下载安装教程全流程(附安装包)
  • Open vSwitch 2.17 静态流表配置对比:Mininet CLI vs Python API 2种方法详解
  • 3分钟掌握Unlock-Music:免费开源音频解密工具的终极使用指南
  • Blender 3.6 卡通角色建模实战:7步完成身体拓扑与关节布线优化
  • 0 基础入门React Native鸿蒙跨平台开发:身份证验证功能实战
  • wvp-GB28181-pro企业级视频监控平台架构设计与容器化部署实战
  • 0 基础入门React Native鸿蒙跨平台开发:监听Keyboard模块原生键盘事件以做出相应回应
  • 单位行贿罪企业合规应对律所:合规整改计划制定实务指南 - 品牌深度评测
  • 2026年7月最新欧米茄杭州未来科技城万达广场维修保养服务电话 - 欧米茄服务中心