@unk1nD000

Как понять запись кода?

В программировании и в данном языке я новичок.
Читаю книгу Бьярне Страуструпа и решал задачу по поиску моды в векторе. Решил её топорным способом через 3 переменных и отсортированный массив.

Но в тоже время наткнулся на более интересное и лаконичное
решение
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> moda;
    vector<int> number(1000, 0);

    int num;
    int rmax;
    int n = 100;

    while (cin >> num)
        moda.push_back(num);

    for (int i = 0; i < moda.size(); i++) // <-- Вот здесь.
        number[moda[i]]++;

    rmax = number[0];
    int c = 0;

    for (int i = 0; i < n; i++)
        if (number[i] > rmax)
        {
            rmax = number[i];
            c = i;
        }

    cout << "Moda is: " << c << endl
        << "Count: " << rmax << endl;

}


Объясните, пожалуйста, что означает отмеченная комментарием запись?
Что-то вроде: каждое число из первого массива мы берем за индекс а по его индексу увеличиваем счетчик на каждое повторение его в массиве?
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Этот код считает в массиве number, сколько раз каждое число встретилось в массиве moda. Да, числа из массива Moda используются как индексы в number. В результате, в number по каждому индексу будет лежать количество вхождений этого индекса в исходный массив.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы