Форум программистов, компьютерный форум CyberForum.ru

Подсчет одинаковых элементов в массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
22.04.2012, 19:30     Подсчет одинаковых элементов в массиве #1
Как посчитать элементы массива чтобы они не повторялись т.е. вот например:
есть массив
C++
1
1 1 1 2 3 4 4 4 5 5 6 4 4 7
считаем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int j = 0; j < linecounter;j++)
                {
                    for (int k = 0; k <linecounter; k++)
                    { 
                        if(arr[j].Equals(arr[k]))
                        {
                            itera++;
                        }
                        
                    }
                    vectord[j] = itera;
                    itera = 0;
                }
вывод
C++
1
444115554221551
а должно быть
C++
1
4115211
он просто все элементы считает а мне нужно, чтобы элементы которые уже соответствуют первому элементу не участвовали в сравнении.

Добавлено через 16 минут
правда тут
C++
1
arr[j].Equals(arr[k])
из С# (как и сама программа)
но это не имеет значения
C++
1
arr[j] == arr[k]
Добавлено через 5 часов 25 минут
сделал черт знает как но сделал. работает супер мего
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
23.04.2012, 00:26     Подсчет одинаковых элементов в массиве #2
Цитата Сообщение от solomid Посмотреть сообщение
Equals(arr[k])
такой функции нету в с++
C++
1
4115211
вы пишите, что вам нужно неповторяющиеся элементы. И тем не менее вывод у вас содержит обратное
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
23.04.2012, 00:29     Подсчет одинаковых элементов в массиве #3
Цитата Сообщение от panicwassano Посмотреть сообщение
такой функции нету в с++
У ТС скорей всего свой класс с этой функцией.

Если честно тоже не понял чего нужно ТСу, но попробую угадать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(int j = 0; j < linecounter;j++)
                {
                    for (int k = i + 1; k <linecounter; k++)
                    { 
                        if(arr[j].Equals(arr[k]))
                        {
                            itera++;
                        }
                        
                    }
                    vectord[j] = itera;
                    itera = 0;
                }
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
23.04.2012, 00:40     Подсчет одинаковых элементов в массиве #4
Toshkarik этот метод из .NET
solomid
1 / 1 / 0
Регистрация: 22.09.2011
Сообщений: 86
23.04.2012, 13:08  [ТС]     Подсчет одинаковых элементов в массиве #5
Цитата Сообщение от panicwassano Посмотреть сообщение
такой функции нету в с++
я же написал что это кусок из C#, пишу на нем, просто в данном вопросе нет разницы, суть одна и таже)
а суть была в том чтобы не проверять на количество одинаковых каждый элемент массива а только те которые еще не участвовали в сравнении. зачем повторно сравнивать то, количество чего тебе уже известно,верно)
Yandex
Объявления
23.04.2012, 13:08     Подсчет одинаковых элементов в массиве
Ответ Создать тему
Опции темы

Текущее время: 14:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru