是否可以将数组传递给C ++中的向量

时间:2017-08-25 11:40:19

标签: c++ stl

请找到我的下面的代码。我想知道我们是否可以通过接受向量的函数传递数组。如果是,请告诉我如何。

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);

1 个答案:

答案 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