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

c++基础——数组

数组

数组是存放相同类型对象的容器,数组中存放的对象没有名字,而是要通过其所在的位置访问。数组的大小是固定的,不能随意改变数组的长度。

定义数组

数组的声明形如 a[b],其中,a 是数组的名字,b 是数组中元素的个数。

int d1 = 50;
const int d2 = 50;
int arr1[d1];  // 错误:d1 不是常量表达式
int arr2[d2];  // 正确:arr2 是一个长度为 42 的数组
int arr3[50];  //当然这种也可以

不能将一个数组直接赋值给另一个数组:

int arr1[3];
int arr2 = arr1;  // 错误
arr2 = arr1;      // 错误

应该尽量将较大的数组定义为全局变量。因为局部变量会被创建在栈区中,过大(大于栈的大小)的数组会爆栈,进而导致 RE。如果将数组声明在全局作用域中,就会在静态区中创建数组。

访问数组元素

可以通过下标运算符 [] 来访问数组内元素,数组的索引(即方括号中的值)从 0 开始。以一个包含 10 个元素的数组为例,它的索引为 0 到 9,而非 1 到 10。但在 OI 中,为了使用方便,我们通常会将数组开大一点,不使用数组的第一个元素,从下标 1 开始访问数组元素。

例 1:从标准输入中读取一个整数n,再读取n个数,存入数组中。其中,n<=1000。

#include <iostream>
using namespace std;int arr[1001];  // 数组 arr 的下标范围是 [0, 1001)int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> arr[i];}
}

例 2:求和数组 arr 中的元素,并输出和。

#include <iostream>
using namespace std;int arr[1001];int main() {int n;cin >> n;for (int i = 1; i <= n; ++i) {cin >> arr[i];}int sum = 0;for (int i = 1; i <= n; ++i) {sum += arr[i];}cout<<sum;return 0;
}

越界访问下标

数组的下标n应当满足0<=n<边界

多维数组

多维数组的实质是「数组的数组」,即外层数组的元素是数组。一个二维数组需要两个维度来定义:数组的长度和数组内元素的长度。访问二维数组时需要写出两个索引:

int arr[3][4];  // 一个长度为 3 的数组,它的元素是「元素为 int 的长度为的 4 的数组」arr[2][1] = 1;  // 访问二维数组

我们经常使用嵌套的 for 循环来处理二维数组。

例:从标准输入中读取两个数n和m,分别表示黑白图片的高与宽,满足n,m<=1000。对于接下来的n行数据,每行有用空格分隔开的m个数,代表这一位置的亮度值。现在我们读取这张图片,并将其存入二维数组中。

const int maxn = 1001;
int arr[maxn][maxn];
int n, m;cin >> n >> m;
for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j) cin >> arr[i][j];

相关文章:

c++基础——数组

数组数组是存放相同类型对象的容器&#xff0c;数组中存放的对象没有名字&#xff0c;而是要通过其所在的位置访问。数组的大小是固定的&#xff0c;不能随意改变数组的长度。定义数组数组的声明形如 a[b]&#xff0c;其中&#xff0c;a 是数组的名字&#xff0c;b 是数组中元素…...

odoo15 登录界面的标题自定义

odoo15 登录界面的标题自定义 原代码中查询:<title>Odoo<title> <html> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Odoo</title><link rel="shortcut icon…...

【内网服务通过跳板机和公网通信】花生壳内网穿透+Nginx内网转发+mqtt服务搭建

问题&#xff1a;服务不能暴露公网 客户的主机不能连外网&#xff0c;服务MQTT服务部署在内网。记做&#xff1a;p1 (computer 1)堡垒机&#xff08;跳板机&#xff09;可以连外网&#xff0c;内网IP 和 MQTT服务在同一个网段。记做&#xff1a;p2 (computer 2)对他人而言&…...

【多线程常见面试题】

谈谈 volatile关键字的用法? volatile能够保证内存可见性,强制从主内存中读取数据,此时如果有其他线程修改被volatile修饰的变量,可以第一时间读取到最新的值 Java多线程是如何实现数据共享的? JVM把内存分成了这几个区域: 方法区,堆区,栈区,程序计数器&#xff1b; 其中堆区…...

深度剖析指针(下)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容还是我们的指针呀&#xff0c;上两篇博客我们基本上已经把知识点过了一遍&#xff0c;这篇博客就让小雅兰来带大家看一些和指针有关的题目吧&#xff0c;现在&#xff0c;就让我们进入指针的世界吧 复习&#xff1a; 数组和…...

爬虫与反爬虫技术简介

互联网的大数据时代的来临&#xff0c;网络爬虫也成了互联网中一个重要行业&#xff0c;它是一种自动获取网页数据信息的爬虫程序&#xff0c;是网站搜索引擎的重要组成部分。通过爬虫&#xff0c;可以获取自己想要的相关数据信息&#xff0c;让爬虫协助自己的工作&#xff0c;…...

Pag的2D渲染执行流程

Pag的渲染 背景 根据Pag文章里面说的&#xff0c;Pag之前长时间使用的Skia库作为底层渲染引擎。但由于Skia库体积过大&#xff0c;为了保证通用型&#xff08;比如兼容CPU渲染&#xff09;做了很多额外的事情。所以Pag的工程师们自己实现了一套2D图形框架替换掉Skia&#xff…...

k8s 概念说明,k8s面试题

什么是Kubernetes&#xff1f; Kubernetes是一种开源容器编排系统&#xff0c;可自动化应用程序的部署、扩展和管理。 Kubernetes 中的 Master 组件有哪些&#xff1f; Kubernetes 中的 Master 组件包括 API Server、etcd、Scheduler 和 Controller Manager。 Kubernetes 中的…...

Docker--(四)--搭建私有仓库(registry、harbor)

私有仓库----registry官方提供registry仓库管理&#xff08;推送、删除、下载&#xff09;私有仓库----harbor私有镜像仓库1.私有仓库----registry官方提供 Docker hub官方已提供容器镜像registry,用于搭建私有仓库 1.1 镜像拉取、运行、查看信息、测试 (一) 拉取镜像 # dock…...

Invalid <url-pattern> [sso.action] in filter mapping

Tomcat 8.5.86版本启动web项目报错Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [sso.action] in filter mapping 查看项目的web.xml文件相关片段 <filter-mapping><filter-name>SSOFilter</filter-name><url-pattern&g…...

【11】linux命令每日分享——useradd添加用户

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…...

Newman+Jenkins实现接口自动化测试

一、是什么Newman Newman就是纽曼手机这个经典牌子&#xff0c;哈哈&#xff0c;开玩笑啦。。。别当真&#xff0c;简单地说Newman就是命令行版的Postman&#xff0c;查看官网地址。 Newman可以使用Postman导出的collection文件直接在命令行运行&#xff0c;把Postman界面化运…...

MySQL:事务+@Transactional注解

事务 本章从了解为什么需要事务到讲述事务的四大特性和概念&#xff0c;最后讲述MySQL中的事务使用语法以及一些需要注意的性质。 再额外讲述一点Springboot中Transactional注解的使用。 1.为什么需要事务&#xff1f; 我们以用户转账为例&#xff0c;假设用户A和用户B的银行账…...

数字IC手撕代码--低功耗设计 Clock Gating

背景介绍芯片功耗组成中&#xff0c;有高达 40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观&#xff0c;因 为这些时钟树在系统中具有最高的切换频率&#xff0c;而且有很多时钟 buffer&#xff0c;而且为了最小化时钟 延时&#xff0c;它们通常具有很高的驱动强度。 …...

易基因|m6A RNA甲基化研究的数据挖掘思路:干货系列

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。关于m6A甲基化研究思路&#xff08;1&#xff09;整体把握m6A甲基化图谱特征&#xff1a;m6A peak数量变化、m6A修饰基因数量变化、单个基因m6A peak数量分析、m6A peak在基因元件上的分布…...

【微信小程序】-- 页面配置(十八)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

玩好 StarRocks,大厂 offer 接不完!|字节跳动、小红书、京东物流、唯品会、腾讯音乐要的就是你!

求职黄金季即将到来&#xff0c;你准备好迎接你的 dream offer 了吗&#xff1f;StarRocks 自创立以来&#xff0c;一直主张为用户创造极速统一的数据分析新范式&#xff0c;让数据驱动创新&#xff0c;而优秀的大数据人才对推动创新有着至关重要的作用。因此&#xff0c;我们推…...

C# IoC控制反转学习笔记

一、什么是IOC IoC-Invertion of Control&#xff0c;即控制反转&#xff0c;是一种程序设计思想。 先初步了解几个概念&#xff1a; 依赖&#xff08;Dependency&#xff09;&#xff1a;就是有联系&#xff0c;表示一个类依赖于另一个类。 依赖倒置原则&#xff08;DIP&a…...

Python解题 - CSDN周赛第33期

本期四道题全考过&#xff0c;题解在网上也都搜得到。。。没有想法&#xff0c;顺手水一份题解吧。 第一题&#xff1a;奇偶排序 给定一个存放整数的数组&#xff0c;重新排列数组使得数组左边为奇数&#xff0c;右边为偶数。 输入描述&#xff1a;第一行输入整数n。(1<n<…...

Session攻击

Session攻击Session攻击简介主要攻击方式会话预测会话劫持中间人攻击会话固定Session攻击简介 Session对于Web应用是最重要的&#xff0c;也是最复杂的。对于Web应用程序来说&#xff0c;加强安全性的首要原则就是:不要信任来自客户端的数据&#xff0c;一定要进行数据验证以及…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...