私は以下のコードを持っています。メソッドはうまくいくはずですが、ベクターを関数に渡すのに問題があります。私は周りを検索し、ベクトルは '参照'または '値'として渡すことができると私は両方を試みたが、彼らは動作するように見えませんでした。メソッドを間違って呼び出すか、ベクトルを間違った方法で渡していますか?いずれにしても、これを解決するにはどうすればよいですか?ありがとう! :)ここでInsertionSortメソッドを呼び出すにはどうすればよいですか?
//insertion sort method
#include <iostream>
#include <vector>
using namespace std;
void insertionSort(int arr[], int n){
for(int i = 0; i < n; i++){
int temp = arr[i]; // element adjacent to left sorted array
int j = i - 1;
while(temp > arr[j] && j != 0){
arr[j] = arr[j - 1];
j--;
}
arr[j] = temp;
}
}
int main(){
int n, temp;
cin >> n;
vector <int> arr;
for(int i = 0; i < n; i++){
cin >> temp;
arr.push_back(temp);
}
insertionSort(arr, n);
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
あなたの関数定義ヘッダーを* void insertSort(vector&arr、int n)*に変更すると、整数の配列と整数のベクトルは異なるデータ型であり、整数の配列を必要とする関数にベクトルを渡すことはできません。 –