Вопросы по теме '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 просмотров
schedule
28.03.2022
std::next_permutation Объяснение реализации кажется немного неэффективным?
Мне было любопытно, как реализован std:next_permutation, поэтому я извлек версию gnu libstdc++ 4.7 и очистил идентификаторы и форматирование, чтобы создать следующую демонстрацию...
#include <vector>
#include <iostream>
#include...
451 просмотров
schedule
18.03.2022
Алгоритм 2-SUM с использованием отсортированного вектора
Я пытаюсь реализовать вариант алгоритма 2-SUM с использованием отсортированного вектора на С++. Задача состоит в том, чтобы прочитать файл, содержащий 10 ^ 6 целых чисел, и вычислить количество различных целых чисел (x и y), которые в сумме дают t,...
1325 просмотров
schedule
03.04.2022
Как реализовать лямбда-функцию для алгоритма сортировки, включающего элементы объекта, косвенность и приведение типов?
Я работаю над некоторым кодом, и у меня есть раздел, в котором я выполняю функцию разовой сортировки. Чтобы реализовать это, я решил, что проще всего перегрузить операторную функцию. Я бы предпочел приблизить реализацию сортировки к фактическому...
353 просмотров
schedule
30.05.2022
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 просмотров
schedule
15.02.2023
Поиск максимума и минимума в векторе пользовательских данных с использованием алгоритма
У меня есть такая структура данных:
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