Форум программистов, компьютерный форум, киберфорум
D (DLang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/71: Рейтинг темы: голосов - 71, средняя оценка - 4.96
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446

Как быстро проверить массив на наличие равных элементов

05.02.2015, 22:17. Показов 17123. Ответов 51

Студворк — интернет-сервис помощи студентам
Можно написать такую функцию:
C++
1
2
3
4
5
6
int busy(int j) {
    foreach (i; 0 .. j)
        if (a[i] == a[j])
            return 0;
    return 1;
}
Но меня интересует: есть ли в D уже готовые функции, которые возвращают 0/1 или индексы равного элемента одинаковых элементов массива.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2015, 22:17
Ответы с готовыми решениями:

Проверить матрицу на наличие элементов, равных данному
Нужно проверить есть ли в двумерном массиве повторяющийся максимальный элемент. Если находим хотя бы один такой же, то сразу выходим из...

Проверить наличие в нем хотя бы двух равных между собой элементов
Здраствуйте! Задано массив A ( n ) . Проверить наличие в нем хотя бы двух равных между собой элементов . Немогу написать код.Написал,...

Проверить массив на наличие нулевых элементов, в первый из этих элементов записать число
Мне нужно проверить массив на наличие в нем элементов со значением 0. А потом в первый из этих элементов со значением 0 записать число.

51
09.03.2015, 00:29  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Ev_Hyper, создал на официальном форуме D тему про string-int[] array, так они до сих пор там помнят про священные войны на D :D:

OP is fighting a loosing battle in flame war on some obscure forum. F#
enthusiast trolls OP into solving stupid puzzles that are trivial in F#
(or any ML-family language) and clumsy in C-family languages.

In language holy wars the only winning move is not to play.
Сейчас тему про find()/remove() создам. Они опять подумают, что это священные войны.

0
Заблокирован
09.03.2015, 00:52
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Не знаю. Спрошу на официальном форуме. Может быть, и нормальное. А, может быть, и нет. Ведь D до сих пор находится в активной разработке.
Dennis Ritchie, Такое поведение не нормально. Это довольно серъезная ошибка. Возможно я нарушил какое-то правила языка D, поэтому и решил уточнить. Теперь буду ждать ответа специалистов с оф. форума.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Они опять подумают, что это священные войны.
Силу ЯП определяют те, кто на нем пишут. Так что в решениях "задач" "выиграет" тот, на чьей стороне более опытные программисты. Так какой критерий сравнения ЯП можно считать справедливым?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:28  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Возможно я нарушил какое-то правила языка D, поэтому и решил уточнить.
Да, как я и думал, правильно нужно писать так (поведение абсолютно нормальное):
C++
1
writeln(find(a = remove(a, 1), 5).length != 0);
Предварительно сохранив массив a в другом массиве.
Yes it is normal, there are two potential points of confusion:
- remove mutates the input range and returns a shortened slice to
the range which excludes the removed element.
- remove takes an index as its second argument, not an element.
Как я понял, дело связано с указателями.
Yes, works as designed. `remove` writes over removed slots and
returns shrunk (shrinked?) slice. It does not shrink the range at
the call site. To update `a`, write the result of `remove` to it:
C++
1
writeln(find(a = remove(a, 1), 5).length != 0);
Добавлено через 11 минут

Не по теме:

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Так какой критерий сравнения ЯП можно считать справедливым?
Силу ЯП определят более опытный программист и сам ЯП.
Вот вам простой пример:
Вы, конечно, можете начать утверждать, что Java/C# и т. д. сильнее/мощнее, чем C++. Но я же знаю: какие языки затачивали под загребание денег, а какие для людей, которые просто любят программирование. И тут бесполезно оправдываться.

0
Заблокирован
09.03.2015, 01:41
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Да, как я и думал, правильно нужно писать так
Dennis Ritchie, в таком случае вы изменяете исходный массив, что может привести к непредвиденным результатам. Не советую так делать.

Не по теме:


Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Вы, конечно, можете начать утверждать, что Java/C# и т. д. сильнее/мощнее, чем C++.
Dennis Ritchie, вы так и не поняли моего сообщения. И на поставенный вопрос не ответили.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Но я же знаю: какие языки затачивали под загребание денег, а какие для людей, которые просто любят программирование.
Не знаете. Вы не программировали ни на C#, ни на Java

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:47  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
в таком случае вы изменяете исходный массив, что может привести к непредвиденным результатам.
Конечно, так как я писал, писать нельзя (я ещё не читал полностью книгу Александреску, поэтому могу написать что-нибудь неправильное).
Можно написать так, например:
C++
1
2
3
4
auto a = [5, 2, 6, 8];
auto b = a.dup;
writeln(find(a = remove(a, 1), 2).length != 0);
writeln(b);

Не по теме:

Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Не знаете. Вы не программировали ни на C#, ни на Java
На Java программировал немного. Сразу же понял, что этот язык создан для буржуев.
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
вы так и не поняли моего сообщения. И на поставенный вопрос не ответили.
Уже ответил в соответствующей теме.

0
Заблокирован
09.03.2015, 01:51
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Можно написать так, например:
Я бы удалял копию коллекции, а не исходную. Так в дальнейшем не будет путаницы.

Не по теме:


Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Уже ответил в соответствующей теме.
Если вы считаете это ответом

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 01:54  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Я бы удалял копию коллекции, а не исходную.
Не понял.
0
Заблокирован
09.03.2015, 02:03
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Не понял.
Java
1
2
3
4
auto a = [5, 2, 6, 8];
auto b = a.dup;
writeln(find(b = remove(b, 1), 2).length != 0);
writeln(a);
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
09.03.2015, 02:06  [ТС]
Ev_Hyper, ОК.
0
09.03.2015, 09:02

Не по теме:

Дорогой Dennis Ritchie, все это доказывает только одно - что я вас сильно задел. Ну подумайте сами: олимпиадник по русскому языку пишет на русском косноязычно. Что стоят его пятерка по русскому? Не помню уже какой классик написал примерно так: "Имеющему мускус в кармане нет необходимости об этом громко заявлять. Запах все доказывает". Так и с вами, мой юный оппонент. Не ленитесь подбирать слова - и никто вас не заподозрит в безграмотности.

0
09.03.2015, 10:25  [ТС]

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
Не ленитесь подбирать слова - и никто вас не заподозрит в безграмотности.
Я же вам сказал, что грамотность в интернете - это шоры.
И не собираюсь я вам больше ничего доказывать. Вы придумали какую-то странную гипотезу, что меня задели. А теперь тыкаетесь: "А я тебя задел; а нет, я тебя очень сильно задел... Я тебе не верю, ты врёшь. Я тебя задел." Смотрится очень смешно.

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38225 / 21157 / 4314
Регистрация: 12.02.2012
Сообщений: 34,771
Записей в блоге: 14
09.03.2015, 10:35

Не по теме:

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Смотрится очень смешно.
- Вы пишете безграмотно, и при этом доказываете, что в школе были отличником. Действительно смешно.

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
И не собираюсь я вам больше ничего доказывать.
- я ждал этого заявления... Оно всегда следует, когда у оппонента отсутствуют аргументы. "грамотность в интернете - это шоры" - на отстойных сайтах может быть что угодно. Но лицо Интернета создают не отстойные сайты.



Короче: беру вас под личный контроль. Неряшливое изложение мыслей будет пресекаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2015, 10:35

Проверить двумерный массив на наличие отрицательных элементов
Если в массиве есть хоть один отрицательный элемент, нужно, чтоб на экран вывелось сообщение "You have negative elements in your...

Проверить массив на наличие в нем положительных элементов
Здравствуйте, дорогие форумчане. Помогите с программой. Условие: переписать положительные элементы массива x, до последнего вхождения...

Проверить массив на наличие в нем элементов со значениями 25 и 45
Написать программу на языке VBA, которая проверяет массив элементов M(i), в котором 30 значений, на наличие в нем элементов со значениями...

Как проверить весь массив на наличие строки?
Как проверить весь массив на наличие строки? если строки нету- записать Добавлено через 14 минут строка всегда динамическая string...

Как проверить массив на наличие имен с базы mysql
У меня есть база в mysql names, состоящая из 30 имен, и есть массив massnames, в котором 5 имен. Как сделать, чтобы данные с базы смерялись...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru