数组经常用来进行科学计算或者进行一些同类型变量的存储
c的写法
#include <stdio.h>
int main() {
double array1[2] = {1.0, 2.25}; //元素为double类型的数组,在定义时指定数组的长度为2
int array2[] = {1,2,3}; //元素为int类型的数组,在定义时如果不知道元素的个数可采用这种方式
printf("array2[0]=%d\n", array2[0]); //根据元素的下标查找元素
int array3[2][2] = {
{1,2},
{3,4}
}; //定义二维数组,如果定义多维数组,则添加更多的中括号即可
printf("array[1][1]=%d\n", array3[1][1]);
int array4[3]; //定义一个数组,但未初始化
}
c中的数组没有增加、删除的操作
c++的写法
#include <iostream>
#include <string.h>
#include <vector> //需要引入vector头文件
using namespace std;
int main() {
//c中的数组定义也适用于c++
int array1[2] = {1,2};
int array2[] = {1,2};
//c++中增加了更为方便的vector
vector<int> vector1; //声明一个int型的向量vector1
vector<int> vector2(10); //声明一个int型的向量vector2,初始大小为10
vector<int> vector3(10,0); //声明一个int型的向量vector3,初始大小为10,初始值都为0
vector3[0] = 15; //对vector3的第1个元素进行赋值
std::cout << vector3[0] << std::endl; //查看vector3的第1个元素
vector3.erase(vector3.begin(), vector3.begin()+1); //删除vector中的元素
std::cout << vector3.size() << std::endl; //查看vector的长度
vector3.insert(vector3.begin(),vector3.begin(), vector3.begin()+3); //将vector3.begin()到vector3.begin()+3之间的元素全部插入到vector3.begin()前
std::cout << vector3.size() << std::endl; //查看vector的长度
vector< vector<int> > vector4(10, vector<int>(5)); //创建一个10*5的int型二维向量
}
java的写法
public class ArrayDemo {
public static void main(String[] args) {
int[] array1; //定义int类型的数组,未初始化
int[] array2 = {1,2,3};
array2[0] = 4; //更改元素
System.out.println(array2[0]); //查找数组的第一个元素
}
}
go的写法
func arrayDemo() {
array1 := [5]int{} //声明数组,未
array2 := [...]int{1,2,3,4,5} //声明数组
array3 := [2][2]int{{1,2}, {3,4}} //声明二维数组
println(array1[0]) //查找数组的元素
println(array2[0])
println(array3[0][0])
}
go中切片的功能类似list,后面会进行介绍,不在这里和数组混为一谈
python的写法
python中没有数组的概念,如果要用数组,可以直接利用list来实现相关功能
对比总结:
- 除了python,c、c++、java、go都可以定义数组,并且数组只可以更改和查找,不能直接进行增加和删除操作。
- c++比c多了vector的功能,可以方便对数组进行增删查改;
- python没数组的概念;
- c、c++、java、go定义数组时都需要花括号来定义元素(后面的章节会讲解如何记忆和快速查看每种语言的语法);