Вопросы по теме 'stl-algorithm'

set_union с мультинаборными контейнерами?
Что возвращает алгоритм std:set_union, когда один или оба входных контейнера являются мультимножествами с дублированными объектами? Дубли теряются? Предположим, например: multiset<int> ms1; ms1.insert(1); ms1.insert(1); ms1.insert(1);...
1652 просмотров
schedule 27.03.2023

Написание собственного компаратора std::set для объекта, содержащего массив в С++
Я пытаюсь сделать свой вопрос простым здесь. У меня есть одна структура с массивом int в качестве переменной-члена. struct elem { elem (int a, int b, int c) {id[0]=a; id[1]=b; id[2]=c;} int id[3]; }; Я хочу поместить указатели на...
1011 просмотров
schedule 30.06.2022

Разрешено ли алгоритмам стандартной библиотеки копировать аргументы предикатов?
Предположим, мы хотим удалить повторяющиеся значения из вектора int s. Обычное решение состоит в том, чтобы отсортировать вектор и стереть дубликаты с помощью идиомы «стереть-удалить». Но нам нужно поддерживать порядок элементов, которые не будут...
621 просмотров
schedule 08.02.2023

Как я могу применить функцию к каждому значению карты, чтобы создать отсортированную последовательность?
Используя STL в С++, как мне применить функцию к каждому значению в std::map , чтобы получить std::string (печатное представление значения) и собрать std::string (s) в коллекцию, которая отсортирована по ключу с плавающей запятой, который приходит...
1013 просмотров
schedule 06.03.2024

Почему для std::max_element требуется ForwardIterator?
Алгоритм max_element стандартной библиотеки C++ требует, чтобы итераторы передавались в качестве входных данных для модели ForwardIterator . Насколько я понимаю, ForwardIterator уточняет InputIterator , указывая, что вы можете использовать...
636 просмотров
schedule 02.01.2023

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

std::next_permutation Объяснение реализации кажется немного неэффективным?
Мне было любопытно, как реализован std:next_permutation, поэтому я извлек версию gnu libstdc++ 4.7 и очистил идентификаторы и форматирование, чтобы создать следующую демонстрацию... #include <vector> #include <iostream> #include...
451 просмотров

Алгоритм 2-SUM с использованием отсортированного вектора
Я пытаюсь реализовать вариант алгоритма 2-SUM с использованием отсортированного вектора на С++. Задача состоит в том, чтобы прочитать файл, содержащий 10 ^ 6 целых чисел, и вычислить количество различных целых чисел (x и y), которые в сумме дают t,...
1325 просмотров
schedule 03.04.2022

Как реализовать лямбда-функцию для алгоритма сортировки, включающего элементы объекта, косвенность и приведение типов?
Я работаю над некоторым кодом, и у меня есть раздел, в котором я выполняю функцию разовой сортировки. Чтобы реализовать это, я решил, что проще всего перегрузить операторную функцию. Я бы предпочел приблизить реализацию сортировки к фактическому...
353 просмотров

std::copy n элементов или до конца
Я хотел бы скопировать до N элементов. template< class InputIt, class Size, class OutputIt> OutputIt myCopy_n(InputIt first, InputIt last, Size count, OutputIt result) { Size c = count; while (first != last && c > 0) {...
5460 просмотров
schedule 18.03.2023

Почему std::count_if возвращает значение со знаком, а не без знака?
Только что понял, что std::count_if возвращает значение со знаком . Почему он разработан таким образом? Это не имеет смысла (результатом может быть только натуральное число, то есть неотрицательное целое число), на мой взгляд, так как это не...
1138 просмотров
schedule 23.06.2022

реализация python «если X в списке» на С++
У нас есть объект массива в C++ и значение. Мы хотим контролировать, чтобы это значение было в массиве или не было в массиве. Как мы можем это сделать?
160 просмотров
schedule 18.11.2022

std::copy_n не изменяет размер вектора назначения
Если я резервирую место для вектора, а затем копирую в него некоторые значения с помощью std::copy_n() , я получаю корректно скопированные и доступные значения, но размер вектора по-прежнему равен нулю. Это ожидаемое поведение? Должен ли я вместо...
1023 просмотров
schedule 11.01.2023

Как связать лямбды для алгоритмов STL с многомерными массивами в стиле C?
Я пытался использовать алгоритмы STL для работы с элементами многомерных массивов, и, похоже, к ним ничего не привязано. Как мне это сделать: // Declaration of pix: float pix[1000][2]; // (...) const int sizeToParse = 300; static auto...
79 просмотров

Поиск максимума и минимума в векторе пользовательских данных с использованием алгоритма
У меня есть такая структура данных: struct Speed { int set; //set by user int act; //actual speed int millis; //millis since epoch } vector<Speed> data; Теперь я хочу нарисовать этот вектор. Чтобы создать...
1673 просмотров
schedule 09.05.2022

Предварительные условия использования алгоритма lower_bound()/STL
Приведенный ниже код возвращает ошибочные результаты, если он скомпилирован для 32-битных систем Linux, и та же проблема применима к 64-битным системам, учитывая достаточно большие векторы. Были ли нарушены предварительные условия lower_bound или...
134 просмотров
schedule 11.07.2023

Могут ли алгоритмы STL и back_inserter предварительно выделять пространство?
Если у меня есть что-то вроде: vector<int> longVector = { ... }; vector<int> newVector; transform(longVector.begin(), longVector.end(), back_inserter(newVector), [] (int i) { return i * i; }); Сможет ли STL...
897 просмотров
schedule 19.04.2023