我正在使用 multiset 对象对传递给它的一组字符串进行排序(使用它提供的默认字母顺序)。我的问题是它没有像预期的那样对字符串进行排序。我知道它应该可以工作,因为我在代码的另一部分中使用了一个来做同样的事情,而且我没有任何问题。Args 是一个包含一堆单词的字符串,我正在逐个删除单词以按多重集排序。这是我在其中使用它的功能:
void
SimpleCommand::sortAndInsertArgument(char * args){
//cout << args;
char * word;
multiset<string> sortedArgs;
word = strtok (args," \t\n");
while(word!=NULL){
sortedArgs.insert(strdup(word));
word = strtok (NULL," \t\n");
}
multiset<string>::iterator it;
for(it=sortedArgs.begin();it!=sortedArgs.end();it++){
string str = *it;
const char * charStr = str.c_str();
Command::_currentSimpleCommand->insertArgument(strdup(charStr));
}
}