c++ - 什么列表[i]++;应该做什么?

标签 c++ algorithm list sorting

我需要了解称为珠排序的算法。我找到了该算法的 C++ 实现,但我并不完全理解它。 最让我困惑的是这一行发生的事情:

    List[i]++;

请帮帮我

完整代码如下:

#include <iostream>
#include <vector>

using std::cout;
using std::vector;

void distribute(int dist, vector<int> &List) {
    //*beads* go down into different buckets using gravity (addition).
    if (dist > List.size() )
        List.resize(dist); //resize if too big for current vector

    for (int i=0; i < dist; i++)
        List[i]++;
}

vector<int> beadSort(int *myints, int n) {
    vector<int> list, list2, fifth (myints, myints + n);

    cout << "#1 Beads falling down: ";
    for (int i=0; i < fifth.size(); i++)
        distribute (fifth[i], list);
    cout << '\n';

    cout << "\nBeads on their sides: ";
    for (int i=0; i < list.size(); i++)
        cout << " " << list[i];
    cout << '\n';

    //second part

    cout << "#2 Beads right side up: ";
    for (int i=0; i < list.size(); i++)
        distribute (list[i], list2);
    cout << '\n';

    return list2;
}

int main() {
    int myints[] = {734,3,1,24,324,324,32,432,42,3,4,1,1};
    vector<int> sorted = beadSort(myints, sizeof(myints)/sizeof(int));
    cout << "Sorted list/array: ";
    for(unsigned int i=0; i<sorted.size(); i++)
        cout << sorted[i] << ' ';
}

最佳答案

它将列表中第 i 个 元素的值增加 1。

关于c++ - 什么列表[i]++;应该做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700091/

相关文章:

c++ - 成功编译格式错误的程序是否符合标准?

确定可分解为 2^p5^q 的数字集的算法

python - 如何使单词的第一个字符大写,如果单词后跟数字,则使第一个字母大写?

C++ 缓冲区太小错误

c++ - 跨平台文件结构处理

c++ - 指针和自增运算符

java - 如何将字符串的所有可能排列放入数组中?

python - 如何以 Pythonic 方式将 "ABCD…"转换为 "CDEF…"?

python - python中的列表索引比较

list - 检查列表是否有序