我是c ++的新手,我正在尝试创建一个函数来从数组中返回一个值。以下是作业的说明:
在本练习中,您将创建一个函数以从中返回值 数组。如果索引超出范围,则返回0.
功能名称:read01
参数 :(数据,大小,索引)
1) data :一个常量int的数组
2) size :一个int,数据中的插槽数
3) index :一个int,数据中所需的位置
返回值:一个int,数据中位置索引的值,或者为0。
这是我到目前为止所尝试的内容:
int read01(int data[], int size, int index){
return data[index];
}
我知道如何执行“if”语句,这不是问题,但我感到困惑的是如何将size参数定义为data[]
的大小。我知道你不能将“int size
”放入数据参数中,如“int data[int size]
”,但我无法想出另一种方法。任何帮助将不胜感激!
答案 0 :(得分:1)
我们可以定义数组的大小,如:
int Data[5];
//这里5是数组大小或
int Data[] = {1,2,3,4,5};
//在这个数量的元素中描述大小。
获取数组使用的大小(标准c方式:获取静态数组的大小):
sizeof(Data)/sizeof(Data[0]);
您还可以尝试使用Distance
方法获取尺寸:
distance(begin(Data),end(Data));
编辑:您无法定义数组用户,因为数组的大小需要在编译时进行编译。所以选项是你可以使用向量或指针。
但是在c ++的情况下使用std::vector
而不是数组:
std::vector<int> vc;
vc.push_back(1);
vc.push_back(2);
vc.push_back(3);
std::cout << vc.size() << std::endl; // it will print 3(size of vector)
如果您想动态定义大小,请尝试以下方法:
int size;
std::cin >> size;
int *A = new int[size];//dynamically assign memory to pointer A
/*your code here*/
delete[] A;
希望它会帮助你..
答案 1 :(得分:1)
我相信答案是
#include <iostream>
int read01(const int data[], int size, int index) {
if ( index >= size ) {
return 0;
} else {
return data[ index ];
}
}