- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#include <set>
#include <algorithm>
bool overlap(const std::set<int>& s1, const std::set<int>& s2)
{
for( const auto& i : s1) {
if(std::binary_search(s2.begin(), s2.end(), i))
return true;
}
return false;
}
Да, и правда distance + advance. А логарифма не будет, получается один проход на distance и второй из пачки advance'ов. Т.е. просто O(n).
Таким товарищам надо дать обычную сишку и сказать чтоб реализовали на ней аналог std::set через красно-черное дерево с итератором и std::binary_search работающий через итератор. Тогда такой хуйни не будет.
Разумеется не будет. Он тебя сразу нахер пошлёт и пойдёт юзать линейный поиск с двумя массивами.
Ты сам-то КР-дерево когда последний раз писал?
Коричнево-розовое
А его посылания нахуй никто не будет слушать. Отправят просто на принудительными работы по реализации этих структур на си (или даже на ассемблере, для особо провинившихся)
Проблема в том, что люди, подобные тому кто этот код на стековерфлоу написал, вообще не понимаю что за хуйню они используют. Для них всякие там std::map, std::set и так далее это просто какое-то волшебное ключевое слово, которое как-то там внутри что-то делает и предоставляет какое-то api.
> Ты сам-то КР-дерево когда последний раз писал?
Хрен знает, возможно я его вообще не реализовывал. Но свои реализации всяких структур данных, я иногда пишу по фану. http://govnokod.ru/23275
> Учителям такой категории вообще, судя по всему, всё до лампочки: в C++ используется библиотека STL, а значит, надо рассказать ученикам STL; разумеется, дальше vector'а и list'а обучение никогда не заходит (при этом эти два контейнера, пожалуй, самые бесполезные из всего STL), но самое интересное, что ученики, разумеется, так и не понимают, о чём идёт речь. В самом деле, как можно объяснить разницу между vector и list человеку, который никогда в жизни не видел ни динамических массивов, ни списков и вообще не понимает, что такое указатель? Для такого ученика list отличается от vector тем, что в нём нет удобной операции индексирования (почему её там нет? ну, нам что-то объясняли, но я ничего не понял), так что вообще-то всегда надо использовать vector, ведь он гораздо удобнее. Что? Добавление в начало и в середину? Так оно и для вектора есть, какие проблемы. Ну да, нам говорили, что это «неэффективно», но ведь работает же! Переучить такого ученика практически нереально: попытки заставить его создать односвязный список вручную обречены на провал, ведь есть же list, а тут столько ненужного геморроя! Собственно говоря, всё: если нашему обучаемому дали в руки STL раньше, чем он освоил динамические структуры данных, то знать он их уже не будет никогда; путь в серьёзное программирование ему, таким образом, закрыт.
Не думаю что это поможет.
Сейчас в качестве уебных языков используют и явы, и питоны и сищарпы.
Впрочем в яве Vector и List есть. Но означают они совсем другое.
Человек сходу поймёт как жесток мир, может даже бросит программирование навсегда.
Я вот видел. Человек, который типа знает C++, который успешно сдает всякие лабы и сессии на этих плюсах и умеет жонглировать этой плюсовой стдлибой, но который нихера не понимает указателей, адресной арифметики. Он например нихрена не напишет вам массив из указателей на функции, принимающие int и возвращающие int. Он вообще даже не поймет что от него хотят. Он не будет знать про то что можно сделать функцию, принимающую указатель на функцию, которая потом по этому указателю что-то делает.
Я когда-то одному студенту делал лабу на ассемблере под дос на турбопацкале для вуза (он при этом был уже работающим программистом на шарпе) и там в коде я сделал как раз такую "функцию" которая указатель на код принимает и объяснил что это callback. Он еще такой "а че, в ассемблере бывает такое?"
От IDE всё-таки требуют немного большего.
По этому я за lua
https://ru.wikipedia.org/wiki/Turbo_Delphi
http://www.turbodelphi.ru/
массив указателей же
Роман Кашицын хорошо выучил С++ и теперь тралирует своих малограмотных коллег.
Наизусть, разумеется, ещё в школе. На ёлке дед мороз заставлял за конфету стандарт по памяти читать.
сочиняю роман
рома
рома роман
Низя, это UB
Ну, неявные преобразования const_iterator <-> iterator тоже, наверное, не сильно соответствуют стандарту, что не мешало (не мешает?) существовать им в stl от visual c++ :)
/fxd
Это звучит как "никто кроме меня".
Даже если взять "никто" в логическом смысле: всем (кроме меня) должно быть абсолютно на это насрать, поэтому удивителен лишь факт, что я сам не сразу заметил.
мущина всей моей жизни.
https://youtu.be/oUk8uXYk_6A?t=85
Гомоиконность!