#include <iostream>
#include <vector>
using namespace std;
class PerformSort
{
public:
const vector<int> * p;
vector<int>& getElements(int);
vector<int>& sortArray(vector<int>&);
void printer(vector<int>&);
}firstSort;
vector<int>& PerformSort::getElements (int num)
{
vector<int> elements(num);
for (int i = 0; i < num; i++)
{
cout << "Enter elements into the array: ";
cin >> elements[i];
}
p = &elements;
return p;
}
vector<int>& PerformSort::sortArray (vector<int>& vector)
{
int holder, min;
for (int i = 0; i < (sizeof(vector) - 1); i++)
{
min = i;
for (int j = (i + 1); j < sizeof(vector); j++)
{
if (vector[j] < vector[min])
{
min = j;
}
}
if (min != i)
{
holder = vector[i];
vector[i] = vector[min];
vector[min] = holder;
}
}
return vector;
}
void PerformSort::printer(vector<int>& vector2)
{
for (int i = 0; i < sizeof(vector2); i++)
{
cout << vector2[i] << " ";
}
}
int main ()
{
int numberOfTimes;
cin >> numberOfTimes;
firstSort.printer(firstSort.sortArray(firstSort.getElements(numberOfTimes)));
return 0;
}
これにより、「型の式からの型の参照の初期化が無効です」というエラーが返されます。SelectionSortアルゴリズムを作成するための私の最初のアプローチは、ベクトルを値で渡すことを試みることでした(ばかげて)。この後、いくつかの調査の後、代わりにポインタを使い始めました。ただし、これにより前述のエラーが発生しました。すべてを定数として宣言しても、根本的なエラーは解決されないようですが、私が正しく理解していれば、定数が必要な場所に一時的な参照が渡されることにエラーがあります。このベクトルの受け渡しをどのように達成できるかについて何か考えはありますか?(私はJavaのバックグラウンドを持っており、C ++を始めたばかりなので、ポインターに関して明らかなエラーがあった場合はご容赦ください)。