所以這是我的C++ hw,現在我得到的唯一錯誤是那些:如何爲此代碼編寫模板?
liux1780_9B.cpp:10:1:錯誤:無效使用模板名'std :: vector'沒有參數列表 vector bubblesort(vector); ^
liux1780_9B.cpp:在函數「詮釋主()」:
liux1780_9B.cpp:68:8:錯誤:前「冒泡」 矢量冒泡(vectoritem)缺少模板參數; ^
liux1780_9B.cpp:68:8:錯誤:預期 ';' 前 '冒泡'
liux1780_9B.cpp:在全球範圍:
liux1780_9B.cpp:76:1:錯誤:無效使用模板名'std :: vector' 沒有參數列表 vector bubblesort(vectoritem){ ^ 編譯失敗。
而這裏的代碼:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
vector bubblesort(vector<item>);
class item
{
private:
int numItem;
string itemName;
public:
item(int numItem, string itemName)
{
this->numItem = numItem;
this->itemName = itemName;
}
int getnumItem()
{
return numItem;
}
string getitemName()
{
return itemName;
}
bool operator<(item r)
{
return this->getnumItem() < r.getnumItem();
}
};
int main()
{
string fileName;
cin >> fileName;
ifstream fin;
fin.open(fileName.c_str());
if (fin.fail())
{
cout << "Input file opening failed.\n";
exit(1);
}
ofstream fout;
fout.open(fileName.c_str());
if (fout.fail())
{
cout << "Output file opening failed.\n";
exit(1);
}
int count;
string name;
vector<item> list;
while (fin >> name)
{
fin >> count;
list.push_back(item(count, name));
}
vector bubblesort(vector<item>);
fin.close();
fout.close();
return 0;
}
vector bubblesort(vector<item>) {
int temp;
bool finished = false;
while (!finished) {
finished = true;
for (int i = 0; i < item.size()-1; i++) {
if (item[i] > item[i+1]) {
temp = item[i];
item[i] = item[i+1];
item[i+1] = temp;
finished=false;
}
}
}
return item;
}
如果可能,請考慮使用'std :: swap'。 – chris