【发布时间】:2026-02-07 12:30:02
【问题描述】:
我正在尝试查找给定字符列表的所有排列,在本例中为“eta”
std::string s="eta";
do
{
std::cout<<s<<std::endl;
}while(std::next_permutation(s.begin(),s.end()));
我会得到以下输出:
eta
tae
tea
但如果我改变一件事
std::string s="eta";
到
std::string s="aet";
现在的输出变成了
aet
ate
eat
eta
tae
tea
这是我期望的正确排列数; 那么当“加扰”字符串按字母顺序排列时,显然会发生一些不同的事情?
或者是什么原因导致了这种歧义?
【问题讨论】:
-
在第一行之后添加
std::sort(s.begin(), s.end());。
标签: c++ stl permutation