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));
}
}