0

我正在使用 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));
    }
}
4

0 回答 0