Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 主页 C++ 简介 C++ 入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学 C++ 布尔值 C++ If...Else C++ Switch C++ While 循环 C++ For 循环 C++ Break/Continue C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 作用域 C++ 递归

C++ 类

C++ 面向对象编程 C++ 类/对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++ 继承 C++ 多态 C++ 文件 C++ 异常 C++ 日期

C++ 数据结构

C++ 数据结构 & STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++ 如何

C++ 加两个数字 C++ 随机数

C++ 参考

C++ 参考 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 示例

C++ 示例 C++ 现实案例 C++ 编译器 C++ 练习 C++ 问答 C++ 证书


C++ 省略数组大小


省略数组大小

在 C++ 中,您不必指定数组的大小。编译器足够聪明,可以根据插入的值的数量确定数组的大小。

string cars[] = {"Volvo", "BMW", "Ford"}; // 三个数组元素

上面的例子等同于

string cars[3] = {"Volvo", "BMW", "Ford"}; // 也是三个数组元素

然而,最后一种方法被认为是“最佳实践”,因为它可以减少程序中错误的可能性。


声明时省略元素

也可以在声明时不指定元素来声明数组,并在稍后添加它们。

示例

string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";
亲自尝试 »

注意:上面的例子只有在您指定了数组大小的情况下才有效。

如果您没有指定数组大小,就会出现错误。

示例

string cars[];  // 数组大小未指定
cars[0] = "Volvo";
cars[1] = "BMW";
cars[2] = "Ford";
cars[3] = "Mazda";
cars[4] = "Tesla";

// 错误:'cars' 中缺少数组大小
亲自尝试 »

固定大小 (数组) 与动态大小 (向量)

在讨论 C++ 中的数组时,您经常会听到“固定大小”和“动态大小”这两个术语。

这是因为 C++ 中数组的大小是固定的,这意味着您无法在创建数组后添加删除元素。

数组 - 固定大小示例

// 一个包含 3 个元素的数组
string cars[3] = {"Volvo", "BMW", "Ford"};

// 尝试向 cars 数组添加另一个元素 (第四个元素) 会导致错误
cars[3] = "Tesla";
亲自尝试 »

向量

对于需要添加和删除数组元素的操作,C++ 提供了向量,它们是可调整大小的数组

向量的尺寸是动态的,这意味着它可以根据需要进行增长和缩小。

向量位于 <vector> 库中,它们附带了许多有用的函数,用于添加、删除和修改元素。

向量 - 动态大小示例

// 一个包含 3 个元素的向量
vector<string> cars = {"Volvo", "BMW", "Ford"};

// 向向量添加另一个元素
cars.push_back("Tesla");
亲自尝试 »

这只是对 向量 的一个简要介绍,让您知道“可调整大小的数组”的存在。

如果您不理解上面的语法,请不要担心。

您将在 后面的章节 中学习更多关于向量和其他数据结构的知识。


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.