Рубрика «stl»
SolidModelBrowser — удобный просмотр STL, 3MF, OBJ, особенно для тех, у кого завёлся 3D принтер
2024-10-17 в 17:10, admin, рубрики: 3MF, OBJ, stl, viewer, просмотрщик, слайсерВ статье выясним, можно ли с точки зрения стандарта языка C++ тривиальным вызовом push_back продублировать элемент std::vector. Отвечая на простой вопрос, столкнемся с более интересными: что собой представляет внутренний мир вектора, как "протухают" итераторы при реаллокации, какие ограничения добавляют гарантии безопасности относительно исключений...
Фичи, которых нет
Уже более десяти лет я профессионально занимаюсь C++ разработкой. Я вошел в профессию 2013 году, в самый момент, когда комитет по стандартизации языка C++ раскочегарился и встал на рельсы трехлетних релизов обновленных стандартов языка. Уже был выпущен C++11, в котором была введена куча самых заманчивых новшеств, существенно освеживших язык. Однако, далеко не каждому была доступна роскошь использовать все эти нововведения в рабочем коде, и приходилось сидеть на унылом C++03, облизываясь на новый стандарт.
Особенности реализации STL в Clang, GCC и Microsoft С++
2022-04-13 в 10:01, admin, рубрики: c++, stl, Блог компании VK, Программирование, С++Любая программа состоит из данных и алгоритмов их обработки. Для написания программ на C++ в начале 90-х годов прошлого века Александр Степанов с коллегами разработал библиотеку STL. Я, Михаил Полукаров из команды разработки VK Teams, заглянул под капот этой библиотеки чтобы разобраться, как правильно ей пользоваться, в каких случаях лучше использовать другие библиотеки, а в каких стоит написать что-то своё.
Все, что вы должны знать о std::any
2020-05-24 в 11:09, admin, рубрики: Any, c++, c++17, stl, STL containers, перевод, Программирование, системное программированиеПривет! Представляем вашему вниманию перевод статьи «Everything You Need to Know About std::any from C++17» автора Bartlomiej Filipek.
С помощью std::optional
вы можете хранить один какой-то тип. С помощью std::variant
вы можете хранить несколько типов в одном объекте. И С++17 предоставляет нам еще один такой оберточный тип — std::any
, который может хранить что угодно, оставаясь при этом типобезопасным.
Читать полностью »
Объединяем функции логическими операторами в C++
2020-03-10 в 13:05, admin, рубрики: c++, stl, Блог компании OTUS. Онлайн-образование, лямбды, ПрограммированиеВ преддверии старта занятий в новом потоке группы «Разработчик С++» подготовили перевод интересного материала.
Большинство алгоритмов STL в C++ используют всего лишь одну функцию для выполнения некоторой работы над коллекцией. Например, чтобы извлечь все четные числа из коллекции, мы можем написать такой код:
auto const numbers = std::vector<int>{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
auto results = std::vector<int>{};
std::copy_if(begin(numbers), end(numbers), back_inserter(results), isMultipleOf2);
Предполагая, что у нас есть функция isMultipleOf2
:
bool isMultipleOf2(int n)
{
return (n % 2) == 0;
}
(В этом конкретном случае было бы проще использовать лямбду, но для моих целей удобнее написать простую функцию, чтобы проиллюстрировать следующую мысль, которая применяется к более сложным функциям, таким как те, которые используются при реализации счетчика слов в верблюжьей нотации).Читать полностью »
И ещё о сортировках
2019-09-15 в 18:04, admin, рубрики: boost, BSD, c++, processing, stl, Алгоритмы, алгоритмы сортировки, Программирование, сортировки, строки, структуры данныхИ ещё о сортировках
Рискну опять поднять эту тему. Начну со ссылки на статью Михаила Опанасенко (oms7), очень впечатляющую по объёмам проделанной работы, а также по количеству приведёных ссылок. Свой материал начал готовить, не зная об этой публикации, что впоследствии, после ознакомления привело к необходимости его существенной переработки. Для тех, кто уже прочитал эту статью, сообщаю, что в моём материале, исследуются более разнообразные по типам данные, в частности, строки и вещественные числа, используются библиотеки boost и bsd, а также затрагиваются некоторые другие отсутствующие в названной статье темы.
Читать полностью »
Создаем на C++ выразительные умные указатели для удаленной памяти
2019-09-14 в 8:27, admin, рубрики: .net, c++, memory, stl, Алгоритмы, Блог компании Издательский дом «Питер», ооп, Программирование, С++, указателиПривет!
Сегодня мы публикуем перевод интересного исследования о работе с памятью и указателями в C++. Материал немного академический, но явно будет небезынтересен читателям книг Галовица и Уильямса.
Следите за рекламой!
Читать полностью »
STL интерфейс Berkeley DB
2019-07-20 в 11:01, admin, рубрики: berkeley db, c++, cmake, nosql, nosql базы данных, stl, ПрограммированиеПривет. Не так давно для одного моего проекта понадобилась встраиваемая база данных, которая бы хранила элементы в виде ключ-значение, обеспечивала поддержку транзакций, и, опционально, шифровала данные. После непродолжительных поисков, я наткнулся на проект Berkeley DB. Кроме нужных мне возможностей, эта БД предоставляет STL-совместимый интерфейс, который позволяет работать с базой данных, как с обычным (почти обычным) STL-контейнером. Собственно про этот интерфейс речь пойдет ниже.
Данная статья определяет основные понятия стандартной библиотеки С++. Она приводится для того чтобы на неё ссылаться в дальнейшем.
Наибольшей частью стандартной библиотеки С++ является библиотека STL (Standard Template Library – Стандартная Библиотека Шаблонов). Библиотека STL содержит пять основных видов компонентов:
- контейнер (container): управляет набором объектов в памяти.
- итератор (iterator): обеспечивает для алгоритма средство доступа к содержимому контейнера.
- алгоритм (algorithm): определяет вычислительную процедуру.
- функциональный объект (function object): инкапсулирует функцию в объекте для использования другими компонентами.
- адаптер (adaptor): адаптирует компонент для обеспечения различного интерфейса.