Неэпический
|
|||||||||||||||||||||||||||||||||||||
23.03.2016, 16:44 [ТС] | 1 | ||||||||||||||||||||||||||||||||||||
Данная тема создана как справочник по алгоритмам STL и будет постепенно наполняться контентом.
Тема для обсуждения: Краткий справочник по алгоритмам STL Данные по алгоритмам взяты из документа N4567 Принятые обозначения Требования и условия
2
|
23.03.2016, 16:44 | |
23.03.2016, 16:44 | |
Помогаю со студенческими работами здесь
1
Краткий список софта Краткий и полный вывод Хороший краткий курс C# Краткий анализ сайта. Передача данных: Справочник <-> Документ <-> Справочник краткий обзор методов спектрального оценивания Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
Неэпический
|
|||||||||||||
2 | |||||||||||||
Краткий справочник по алгоритмам STL23.03.2016, 16:44. Показов 5600. Ответов 16
Метки нет (Все метки)
Принятые обозначения.
Категории итераторов:
поэтому задаются только минимальные требования для итераторов. Соответственно, вместо итератора одной категории, может использоваться итератор другой категории, расположенный в данной таблице "ниже" заданного. Например, если алгоритму необходим итератор категории BidirectionalIterator, то может использоваться итератор из категорий BidirectionalIterator и RandomAccessIterator, но не InputIterator или ForwardIterator. Однако, в некоторых реализациях алгоритмы, требующие, например, BidirectionalIterator могут прекрасно работать и с итераторами категорий InputIterator и ForwardIterator, но их использование, возможно, сделает код не переносимым. Обозначения для предикатов:
0
|
23.03.2016, 16:44 | |
Ответы с готовыми решениями:
16
Краткий справочник по С++ справочник на STL Краткий справочник по функциям Краткий словарь оверклокера |
Неэпический
|
|||||||||||||||||||||
23.03.2016, 16:44 [ТС] | 3 | ||||||||||||||||||||
Требования и условия:
EqualityComparable:
MoveConstructible:
CopyConstructible:
0
|
Неэпический
|
|||||||||||
23.03.2016, 16:44 [ТС] | 4 | ||||||||||
1.1 All of
Возвращаемое значение: true - если для каждого итератора i в диапазоне [first, last) вызов предиката pred(*i) возвращает true, либо если диапазон [first, last) является пустым. false - во всех остальных случаях. Сложность: не более last-first сравнений (обращений к предикату) Итак, данный алгоритм вернет true, только если предикат вернет true для всех значений. Используем это:
т.к. все элементы являются нечетными и для них предикат is_odd возвращает true. Во второй же последовательности закралось четное число (32), поэтому all_of возвращает false.
0
|
Неэпический
|
|||||||||||
23.03.2016, 16:44 [ТС] | 5 | ||||||||||
1.2 Any of
Возвращаемое значение: false - если для всех итераторов i в диапазоне [first, last) вызов предиката pred(*i) возвращает false, либо если диапазон [first, last) является пустым. true - во всех остальных случаях. Сложность: не более last-first сравнений Данный алгоритм вернет true, если есть хоть один элемент, для которого предикат вернет true:
А во втором векторе есть, как минимум одно четное число, поэтому any_of возвращает true.
0
|
Неэпический
|
|||||||||||
23.03.2016, 16:44 [ТС] | 6 | ||||||||||
1.3 None of
Возвращаемое значение: true - если для всех итераторов i в диапазоне [first, last) вызов предиката pred(*i) возвращает false, либо если диапазон [first, last) является пустым. false - во всех остальных случаях. Сложность: не более last-first сравнений Данный алгоритм вернет true, только если предикат вернет false для всех элементов.
т.к. в них обоих есть нечетные числа, для которых предикат вернет true. В третьем же векторе нет нечетных элементов и предикат вернет false для каждого из элементов.
0
|
Неэпический
|
||||||
23.03.2016, 16:44 [ТС] | 7 | |||||
1.4 For each
Эффекты: применяет f к результату разыменования каждого итератора i в диапазоне [first, last). Если тип first удовлетворяет требованиям изменяемого итератора, то f может изменять элементы диапазона через разыменованный итератор. Возвращаемое значение: std::move(f) Сложность: применяет f точно last-first раз. Примечание: возвращаемое значение f игнорируется. Несмотря на то, что данный алгоритм может изменять последовательность, в стандарте он описан в разделе не модифицирующих, так что оставим его здесь.
0
|
Неэпический
|
||||||||||||||
23.03.2016, 16:44 [ТС] | 8 | |||||||||||||
1.5 Find
Возвращаемое значение: возвращает первый итератор i из диапазона [first, last), удовлетворяющий условию:
Сложность: не более last-first сравнений
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 9 | |||||||||||
1.6 Find end
Возвращаемое значение: последний итератор i из диапазона [first1, last1 - (last2-first2)), такой, что для любого не отрицательного n < (last2-first2) выполняются условия:
Сложность: не более (last2 - first2) * (last1 - first1 - (last2 - first2) + 1) сравнений
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 10 | |||||||||||
1.7 Find first of
Возвращаемое значение: первый итератор i из диапазона [first1, last1) который, для итератора j из диапазона [first2, last2) удовлетворяет условию:
Сложность: не более (last1-first1) * (last2-first2) сравнений
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 11 | |||||||||||
1.8 Adjacent find
Возвращаемое значение: первый итератор i из диапазона [first, last) удовлетворяющий условию
Сложность: для не пустой последовательности точно min((i - first) + 1, (last - first) - 1) сравнений, где i - итератор, возвращенный adjacent_find.
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 12 | |||||||||||
1.9 Count
Возвращаемое значение: количество итераторов i из диапазона [first, last), удовлетворяющих условию
Сложность: точно last-first сравнений
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 13 | |||||||||||
1.10 Mismatch
Возвращаемое значение: пара итераторов i и j, где i принадлежит диапазону [first1, last1), j принадлежит диапазону [first2, last2), при этом j == first2 + (i-first1), для которых выполняется условие:
Возвращает пару итераторов first1 + min(last1 - first1, last2 - first2) и first2 + min(last1-first1, last2 - first2) если элементы не найдены. Сложность: не более min(last1 - first1, last2 - first2) сравнений Примечание: если аргумент last2 не указан, то вторая последовательность имеет диапазон [first2, first2+(last1-first1))
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 14 | |||||||||||
1.11 Equal
Возвращаемое значение: если last1 - first1 != last2 - first2, то возвращается false, иначе возвращается true, если для каждого итератора i в диапазоне [first1, last1) выполняется условие:
Сложность: если InputIterator1 и InputIterator2 удовлетворяют требованиям итератора произвольного доступа и last1 - first1 != last2 - first2, то не выполняется ни одного сравнения элементов. В остальных случаях производится не более min(last1 - first1, last2 - first2) сравнений. Примечание: если аргумент last2 не указан, то вторая последовательность имеет диапазон [first2, first2+(last1-first1))
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 15 | |||||||||||
1.12 Is permutation
Требования: ForwardIterator1 и ForwardIterator2 должны иметь одинаковые типы значений (value_type). Функция сравнения должна определять отношение эквивалентности(equivalence relation). Возвращаемое значение: если last1 - first1 != last2 - first2, то возвращается false. Возвращается true, если одна из перестановок элементов диапазона [first2,first2 + (last1 - first1)), начинающаяся с некоторого итератора begin соответствует условию:
Сложность: если ForwardIterator1 и ForwardIterator2 удовлетворяют требованиям итератора произвольного доступа и last1 - first1 != last2 - first2, то сравнений элементов не происходит. Если последовательности уже равны, то будет произведено ровно distance(first1, last1) сравнений. Иначе, в худшем случае сложность будет квадратичной (O(N2)), где N == distance(first1, last1) Примечание: если аргумент last2 не указан, то вторая последовательность имеет диапазон [first2, first2+(last1-first1))
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 16 | |||||||||||
1.13 Search
Возвращаемое значение: первый итератор i из диапазона [first1,last1 - (last2-first2)), такой, что для любого не отрицательного n, меньшего чем last2 - first2, выполняется условие:
Возвращается first1 если диапазон [first2,last2) пустой, иначе возвращается last1 если соответствующая подпоследовательность не найдена. Сложность: не более чем (last1 - first1) * (last2 - first2) сравнений
0
|
Неэпический
|
||||||||||||
23.03.2016, 16:44 [ТС] | 17 | |||||||||||
1.14 Search N
Эффекты: ищет первую подпоследовательность из n элементов удовлетворяющих условию Возвращаемое значение: первый итератор i из диапазона [first,last - count), такой, что для любого не отрицательного n, меньшего чем count, выполняется условие:
Сложность: не более чем last - first сравнений
0
|