C++算法基础笔记

news/2025/2/23 13:43:36

算法学习

  • C++语法
      • 字符和字符串输出输出
      • 字符串拼接和扩充
      • 检查字符串是否存在大写、小写字母
      • 字符数组
      • 换行

C++语法

字符和字符串输出输出

在C++ 中使用如下语法实现对容器中的对象进行遍历,类似于js或python的for in语法

for (element_declaration : container)
#include <iostream>
#include <string>

using namespace std;

int main() {
    string inputStr;

    // 输入字符串
    cout << "请输入一个字符串:";
    cin >> inputStr;

    // 输出整个字符串
    cout << "您输入的字符串是:" << inputStr << endl;

    // 挨个输出字符串中的字符
    cout << "字符串中的每个字符是:" << endl;
    for (char ch : inputStr) {
        cout << ch << endl;
    }

    return 0;
}

字符串拼接和扩充

string str1 = "Hello";
    string str2 = "World";

    // 拼接字符串
    string result = str1 + " " + str2; // 使用 + 运算符,直接拼接两个字符串或字符串与字面量
    cout << "拼接后的字符串是:" << result << endl; //得到result:Hello World

    // 使用 append 方法
    str1.append(" ").append(str2); // 在 str1 后直接拼接
    cout << "使用 append 拼接后的字符串是:" << str1 << endl;//得到str1:Hello World

检查字符串是否存在大写、小写字母

for (char c : str) {
if (isupper(c)) { // 检查是否为大写字母}//遍历字符串中的每一个字符,进行检查是否为大小写
if (islower(c)) { // 检查是否为小写字母}}

字符数组

字符数组的输入
cin >> charArray 会直接将用户输入存储到字符数组中,并自动在字符串末尾添加结束符 \0(C 风格字符串的特点)。
输入时以空格或换行作为终止符,如果需要支持包含空格的字符串,可以改用 cin.getline()。

const int size = 100; // 定义字符数组的最大大小
    char charArray[size];

    // 输入字符数组
    cout << "请输入一个字符串:";
    cin >> charArray; // 直接将输入存储到字符数组中(以空格或换行结束)

逐个输出字符
使用 for 循环,遍历字符数组中的每个元素。
遍历条件是 charArray[i] != ‘\0’,因为 \0 是字符串的结束符。

 // 输出字符数组的每个元素
    cout << "字符串中的每个字符是:" << endl;
    for (int i = 0; charArray[i] != '\0'; ++i) { // 遍历到字符串结束符 '\0'
        cout << charArray[i] << endl;
    }

字符串截取
输出字符数组中n位到m的字符组成的字符串substr(截取开始位,截取末位)

  return input.substr(n, m - n + 1); // 使用 substr 提取指定范围字符,input为某字符串
    string result = substringFromTo(input, n, m);//result即为一个目标字符串

字符数组截取

截取字符数组charArray中从第n位到第m位的字符组成的字符串

// 使用 string 构造函数提取指定范围字符
char charArray[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
    return string(charArray + n, charArray + m + 1);//返回从n位到m位组成的字符串

换行

endl 与 \n 的对比
endl 与 \n 都可以实现换行,但有区别:
endl:cout << charArray[i] << endl;
换行并刷新缓冲区。
用于需要实时输出的场景。
开销略大,因为刷新缓冲区会降低程序性能。
\n:cout << "Hello\n"; // 仅换行
仅换行,不刷新缓冲区。
性能较高,适合连续输出大量数据的场景


http://www.niftyadmin.cn/n/5863444.html

相关文章

L2-【英音】地道语音语调

文章目录 英音音标节奏节奏感体现词重音句重音音节的划分音节的突出元音单元音/ɑː//ɔ://u://i://ɜː////ʌ//ɒ//ʊ//ɪ//ə//e/双元音/eɪ//aɪ//aʊ//əʊ//ɔɪ//ɪə//ʊə//eə/目标 1.相较于之前有较大进步的语音面貌; 2.自己可以为自己纠正发音; 3.在听到一篇文章…

【Agent的革命之路——LangGraph】工作流中的 Command 模式

这篇文章我们将 LangGraph中的控制流&#xff08;边&#xff09;和状态更新&#xff08;节点&#xff09;结合起来使用。比如&#xff0c;我们希望同时执行状态更新并决定下一步要转到哪个节点&#xff0c;且这些操作在同一个节点中完成。而正好 LangGraph 提供了一种方法&…

3D Gaussian Splatting 数学原理与推导

概述 3D Gaussian Splatting源于EWA的理论基础,本文重点从EWA模型出发,详细推导3D GS中的数学原理,加深对鱼眼相机畸变场景下3D GS渲染结果的理解。 引言 神经辐射场(NeRF)的出现,在新视图合成领域引起了广泛关注,显著提高了合成结果的质量。然而,NeRF 训练和渲染速…

EasyX图形库使用教程

文章目录 EasyX 图形库基础使用教程&#xff08;快速上手&#xff09;前言&#xff1a;本文简单详细的介绍了EasyX图形库的常用函数和操作&#xff0c;帮助EasyX的快速上手1、绘制简单的图形窗口1.1头文件1.2创建图形化窗口initgraphy函数closegraph函数 1.3窗口坐标 2、设置图…

go 环境准备

配置路径&#xff1a; GOROOT&#xff1a;D:\GoGOPATH&#xff1a;go的工作目录 D:\workspacego 验证版本&#xff1a;go version 配置第三方仓库&#xff1a; GO111MODULE&#xff1a;开启mod模式GOPROXY&#xff1a;go语言三方库地址GOSUMDB&#xff1a;go语言软件包的M…

【ORB-SLAM3】鲁棒核函数的阈值设置

问题背景 阈值 δ \delta δ 是 Huber 鲁棒核函数的重要参数。首先给出结论&#xff0c;在ORB-SLAM系列中&#xff0c;该阈值选取的原则为&#xff1a; 单目情况下&#xff0c;根据95%置信水平下两自由度卡方检验的临界值&#xff0c; δ \delta δ 设置为 5.991 \sqrt{5.9…

Qt中QRadioButton的样式设置

在 Qt 中&#xff0c;可以使用 Qt 样式表&#xff08;QSS&#xff09; 来自定义 QRadioButton 的外观。样式表类似于 CSS&#xff0c;允许你设置控件的颜色、字体、边框、背景等属性。 以下是如何为 QRadioButton 设置样式表的详细说明和示例。 1. 基本样式设置 你可以通过 s…

基于SpringBoot的线上汽车租赁系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…