我正在處理一個任務,我需要使用模板對矢量進行排序,以便我可以將不同的數據類型傳遞給我的類,並使用std :: sort對它們進行排序。所以我很困難, 我真的不知道如何使用該模板接受來自main()的輸入。 PS。這是爲了家庭作業,這就是爲什麼我不使用數組和排序功能。bubbleSort矢量模板類
這是我的代碼到目前爲止。
using namespace std;
template <class T>
class SortableVector
{
private:
T a =0;
public:
SortableVector(); // constructor
~SortableVector(); // destructor
void bubble_sort(vector<T>, a)
{
for (int i = a.size(); i > 0;i--)
{
for (int j = 0, k = 1; k < i;j++, k++)
{
if (a[j] > a[k])
{
int swap = a[j];
a[j] = a[k];
a[k] = swap;
}
}
}
}
};
而我主要是尋找這樣的:
int main()
{
int alen, val;
vector<int> a;
cout << "Enter the number of elements : ";
cin >> alen;
for(int i = 0; i < alen; i++)
{
cin >> val;
a.push_back(val);
}
SortableVector::bubble_sort(a);
cout << "List of sorted elements: " << endl;
for(int i = 0; i < alen; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
任何幫助將受到歡迎:)
好...... 所以我做了一些改動感謝Namfuak
現在我有一個完全不同的問題
命令行輸出; 。
Hw8_3.cpp :(文本+ 0×11):未定義參照SortableVector<int>::SortableVector()' Hw8_3.cpp:(.text+0x138): undefined reference to
SortableVector ::〜SortableVector()」 Hw8_3.cpp :(文本+量0x170):未定義參考`SortableVector ::〜SortableVector() ' collect2:錯誤:ld返回1退出狀態
我真的沒有得到這個。這是我迄今爲止的代碼;
template <class T>
class SortableVector
{
private:
vector<T> vec;
public:
SortableVector(); // constructor
~SortableVector(); // destructor
void push_back(T push) {vec.push_back(push);}
T bubble_sort(vector<T> a);
};
template <class T>
T SortableVector<T>::bubble_sort(vector<T> a)
{
for (int i = a.size(); i > 0;i--)
{
for (int j = 0, k = 1; k < i;j++, k++)
{
if (a[j] > a[k])
{
T swap = vec[j];
vec[j] = vec[k];
vec[k] = swap;
}
}
}return 0;
}
而我的main();
{
SortableVector<int> L;
int alen, val;
vector<int> a;
cout << "Enter the number of elements : ";
cin >> alen;
for(int i = 0; i < alen; i++)
{
cin >> val;
L.push_back(val);
}
L.SortableVector<int>::bubble_sort(a);
cout << "List of sorted elements: " << endl;
for(int i = 0; i < alen; i++)
{
cout << a[i] << " ";
}
}
還有其他想法嗎?我真的迷失在這裏...
也許這個想法是從矢量類繼承?這不是一個好主意,但這可能是一些混淆的地方 – Henry
我看,非常感謝,這是我第一次使用矢量,所以我不確定我要去哪裏。我的方向是;編寫一個類模板SortableVector。該類應該有一個按照升序排列向量元素的成員函數...我們不應該使用std :: sort。所以我想到了實施冒泡排序......現在我發現我的邏輯可能是錯誤的。 – Mrodri13