请找到我的下面的代码。我想知道我们是否可以通过接受向量的函数传递数组。如果是,请告诉我如何。
int main()
{
int N,M,i;
cin>>N>>M;
int fs[N];
for(i=0;i<N;i++){
cin>>fs[i];
}
int K=findK(fs,M);
cout << "Hello World!" << endl;
return 0;
}
int findK(????,int M){
int b_sz,no_b;
int tfs[]=fs;
make_heap(tfs);
答案 0 :(得分:0)
我对您的代码进行了一些修改,以帮助您入门。此外,我建议您查看http://www.cplusplus.com/reference/vector/vector/,了解std :: vector的高级概述及其提供的功能。
#include <iostream>
#include <vector>
using namespace std;
int findK(const vector<int> &fs, int M); // Function stub so main() can find this function
int main()
{
int N, M, i; // I'd recommend using clearer variable names
cin >> N >> M;
vector<int> fs;
// Read and add N ints to vector fs
for(i = 0; i < N; i++){
int temp;
cin >> temp;
fs.push_back(temp);
}
int K = findK(nums, M);
cout << "Hello World!" << endl;
return 0;
}
int findK(const vector<int> &fs, int M){ // If you alter fs in make_heap(), remove 'const'
make_heap(fs);
// int b_sz,no_b; // Not sure what these are for...
// int tfs[]=fs; // No need to copy to an array
// make_heap(tfs); // Per above, just pass the vector in