我想改组CString变量中存在的字符。我该怎么做?
std提供了一个名为random_shuffle()的函数,可以通过以下方式对std::string进行洗牌
std::string s(“ThisIsSample”);
random_shuffle(s.first(),s.last());
但是由于CString没有访问fisrt和最后一个字符进行迭代的功能。如何在CString中使用random_shuffle?
最佳答案
使用 GetBuffer
获取字符缓冲区,并将其边界传递给std::random_shuffle
:
void shuffle_cstring(CString& c)
{
size_t len = c.GetLength();
LPTSTR buf = c.GetBuffer(1);
std::random_shuffle(buf, buf + len);
c.ReleaseBuffer();
}
关于c++ - 如何在CString中使用random_shuffle?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27200104/