c++ - 如何在 C++ 中对数组中的字母进行排序?

标签 c++ arrays sorting matrix

我创建了一个矩阵。这个矩阵有随机字母 [a-z] 和 [A-Z]

harfGetir() 函数是创建随机字母。但我不希望这些字母重复。我该怎么做?我想对字母进行排序。

这是代码:我能做什么?

const int M = 5;
const int N = 10;



static const char harfler[] = // a-z arası büyük ve küçük harfleri tanımladığımız değişken.
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";

int harfBoyut = sizeof(harfler) - 1; 


char harfGetir() {

return harfler[rand() % harfBoyut];

}

int main()
{

int A[M][N];

srand(time(NULL)); // değerleri yeniden atamak için programı baştan aldı.

for (int i = 0; i < M; i++) // satır döngüsü
    for (int j = 0; j < N; j++) // sütun döngüsü
    {
        A[i][j] = harfGetir(); // matris değerleri atama


    }

cout << setw(5) << "Harf Matrisi" << endl;

cout << endl;
for (int i = 0; i < M; i++) // satırdaki harfler
{

    for (int j = 0; j < N; j++) // sütundakı harfler

        cout << setw(4) << harfGetir();  // harfleri çeken kod

    cout << endl;

}
cout << endl;





system("pause");
return 0;
}

最佳答案

您可以创建一个随机排列(使用 random header ,而不是旧的 srand),然后在数组。

然后你可以再次对它们进行排序。

例如,如果字符串 v 中包含所有可用字母:

std::random_device rd;
std::mt19937 g(rd());

std::shuffle(v.begin(), v.end(), g);

然后,如果您想要 10 个字母,则使用 v 的前 10 个条目。

关于c++ - 如何在 C++ 中对数组中的字母进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53223148/

相关文章:

c++ - jsoncpp中区分int和uint类型

c++ - boost::asio 挂起_endthreadx

c# - 如何从C#中的数组复制所有不同的元素

javascript - 如何在 chckebox 循环中迭代对象数组并替换一个对象 : checked each function - jquery

java - 方法没有采用正确的数组

algorithm - 混合两个项目列表,使结果看起来自然而不是人为的

c++ - Boost膨胀算法解压缩

c++ - 如何给 mdb 文件一个版本

javascript - 在 Vue JS 中访问存储值

python - 按多列排序时为每列设置升序降序