我有一個文件,它的第一行是英文字母,隨機順序,之後,名稱。我應該根據給定的字母來排列名字。我的類看起來是這樣的:設置自定義函數對象比較器c + +
class MyCompare(){
private:
static map<char, int> order;
public:
MyCompare(string alphabet){
//loop through the string, assign character to it's index in the map
// order[ alphabet[i] ] = i;
}
bool operator()(const string s1, const string s2) {
//compare every character using compchar, return the result
}
bool compchar(const char c1, const char c2){
return order[c1]<order[c2];
}
}
主,我做了這樣的事情:
int i=0;
if (myfile.is_open()) {
while (myfile.good()) {
i++;
getline (myfile,line);
if(i ==1){
MyCompare st(line);
set<string, MyCompare> words(st);
}
words.insert(line);
}
myfile.close();
}
當然
,這是不行的,因爲設置ISN」在if塊之外可見。我不能拿出任何東西,但... 請指教。
我不知道看這個代碼應該做什麼。 – 2011-05-09 18:05:15
「操作員」之後應該有一個操作員... – 2011-05-09 18:05:36
@Mike DeSimone對不起,錯字。 – adamors 2011-05-09 18:06:39