Публикации по теме 'stl'


Как использовать полезную библиотеку STL в C ++: базовый контейнер, итератор и алгоритм
STL - это (хорошо реализованная) стандартная библиотека шаблонов C ++ для использования разработчиками. Разработчики могут легко писать приложения, используя STL вместо написания кода с нуля. STL состоит из трех частей. 1. Контейнер 2. Итератор 3. Алгоритм. Контейнер - это шаблонный класс, который реализует структуру данных, в которой хранятся данные. Некоторые примеры контейнера: список, очередь, стек, карта, набор и вектор . Итератор - это указатель на элементы контейнера. Он..

Почему аргумент конструктора копирования должен быть константным в С++?
Когда мы создаем собственный конструктор копирования, мы передаем объект по ссылке и обычно передаем его как ссылку const . Одна из причин передачи ссылки на const заключается в том, что мы должны использовать const в C+ везде, где это возможно, чтобы объекты не изменялись случайно. Это одна из веских причин для передачи ссылки как const , но это еще не все. Например, предскажите вывод следующей программы C++. Предположим, что компилятор не выполняет удаление копирования ...

Эффективные методы кодирования C++.
Некоторые способы оптимизации производительности std::vector: 1. Предпочитайте emplace_back() вместо push_back() при вставке в вектор. 2. При переборе элементов в std::vector избегайте использования функции std::vector::at(). 3. При заполнении или копировании в вектор предпочитайте присваивание, а не вставку() или push_back(). 4. Избегайте ненужных циклов перераспределения и копирования, резервируя размер вектора заранее. 5.Используйте сжатие_к_подгонке(), чтобы освободить память,..

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

Очередь приоритетов STL с дублирующимися ключами — возможно ли это?
Мне нужно хранить объекты класса A в некоторой структуре данных. Кроме того, я хотел бы, чтобы они автоматически сортировались по ключу, который в моем случае является встроенным объектом другого класса B. Поэтому я решил использовать приоритетную...
16034 просмотров
schedule 23.11.2023

Как отсортировать вектор пар на основе второго элемента пары?
Если у меня есть вектор пар: std::vector<std::pair<int, int> > vec; Есть ли простой способ отсортировать список в возрастающем порядке на основе второго элемента пары? Я знаю, что могу написать небольшой функциональный объект,...
145235 просмотров
schedule 30.03.2024

Лучший способ извлечь подвектор из вектора?
Предположим, у меня есть std::vector (назовем его myVec ) размера N . Как проще всего построить новый вектор, состоящий из копии элементов с X по Y, где 0 ‹= X‹ = Y ‹= N-1? Например, от myVec [100000] до myVec [100999] в векторе размером...
389126 просмотров
schedule 05.04.2024

В чем преимущество наследования от std::binary_function (или std::unary function)?
В чем преимущество наследования от std::binary_function (или std::unary_function)? Например, у меня есть такой код: class Person { public: Person(); Person(int a, std::string n); Person(const Person& src); int age;...
9218 просмотров
schedule 03.11.2022

Как проверить список STL в отладчике CodeWarrior?
Есть ли простой способ просмотреть данные в STL std::list<T> в отладчике Metrowerks CodeWarrior? Я могу просматривать данные в начале или в конце списка, просматривая такие выражения, как...
672 просмотров
schedule 27.06.2022

Имеет ли значение порядок строк ссылок для supc++?
Это продолжение предыдущего вопроса - Как использовать другой STL с g++ Теперь я могу получить свой код для сборки, используя другой STL. Однако мне все еще нужно связать -lsupc++ (вместе с указанным другим STL) Я вижу анекдотические...
1488 просмотров
schedule 31.07.2022

Как контейнеры STL копируют объекты?
Я знаю, что контейнеры STL, такие как vector , копируют объект при его добавлении. push_back метод выглядит так: void push_back ( const T& x ); Я удивлен, увидев, что элемент принимается как ссылка . Я написал пример программы,...
8586 просмотров
schedule 30.08.2022

Функция создания хеша/ключа для широты и долготы?
У меня есть блоки данных, связанные со значениями широты/долготы. Я хотел бы создать ключ поиска/хеш-значение из значения широты/долготы, чтобы его можно было использовать для поиска на карте или что-то подобное. Я использую отрицательные значения...
3131 просмотров
schedule 24.07.2022

Предположение о первоначальном значении карты в С++
Я инициализирую карту map<string,int> ex; на C++. Я не смог найти contains_key или аналогичную функцию в stl, поэтому я просто использую ex[inputString]++; Отладчик показывает, что int правильно инициализируется нулем, правильное ли это...
773 просмотров
schedule 27.02.2024

Какова временная сложность метода поиска в наборе в С++?
set<int> s; s.insert(1); s.insert(2); ... s.insert(n); Интересно, сколько времени уходит на s.find(k) , где k число от 1..n? Я предполагаю, что это журнал (n). Это правильно?
28248 просмотров
schedule 31.08.2022

C ++ STL: проблемы с итераторами строк
Я делаю простую игру с палачом из командной строки. void Hangman::printStatus() { cout << "Lives remaining: " << livesRemaining << endl; cout << getFormattedAnswer() << endl; } string...
536 просмотров
schedule 17.04.2024

Почему string::find возвращает size_type, а не итератор?
Почему в С++ string::find возвращает size_type , а не iterator ? Это имело бы смысл, потому что такие функции, как string::replace или string::insert , принимают итераторы в качестве входных данных, поэтому вы можете find какой-то символ и...
6428 просмотров
schedule 09.10.2022

std :: sort и std :: уникальная проблема со структурой
Следующий код: #include <vector> #include <algorithm> struct myStructDim { int nId; int dwHeight; int dwWidth; }; void main() { ::std::vector<myStructDim> m_vec_dim;...
2105 просмотров
schedule 30.09.2022

Возврат c ++ std :: vector без копии?
Можно ли вернуть стандартный контейнер из функции без копирования? Пример кода: std::vector<A> MyFunc(); ... std::vector<A> b = MyFunc(); Насколько я понимаю, это копирует возвращаемое значение в новый вектор b. Позволяет ли...
33955 просмотров
schedule 08.01.2024

Является ли STL empty() потокобезопасным?
У меня есть несколько потоков, изменяющих вектор stl и список stl. Я хочу избежать блокировки, если контейнер пуст Будет ли следующий код потокобезопасным? Что, если элементы были списком или картой? class A { vector<int> items...
4253 просмотров
schedule 19.03.2024

STL find работает лучше, чем цикл, созданный вручную
У меня вопрос. Учитывая следующий фрагмент кода C ++: #include <boost/progress.hpp> #include <vector> #include <algorithm> #include <numeric> #include <iostream> struct incrementor { incrementor() : curr_() {}...
5595 просмотров
schedule 10.07.2022

Удалить элемент из середины std::heap
Я использую приоритетную очередь в качестве планировщика с одним дополнительным требованием. Мне нужно иметь возможность отменить запланированные элементы. Это равносильно удалению элемента из середины приоритетной очереди. Я не могу использовать...
7398 просмотров
schedule 04.04.2024

Реализует ли std :: sort Quicksort?
Возможный дубликат: какой тип сортировки используется в функции sort ()? Реализует ли std :: sort Quicksort?
48577 просмотров
schedule 05.07.2022

Абстрактная оболочка для контейнеров stl?
Я бы хотел показать некоторые объекты как абстрактные контейнеры с возможностями манипуляции в стиле stl (циклы for_each, итераторы) и скрыть детали реализации контейнера. Проблемы с производительностью не имеют значения (допустимы виртуальные...
3960 просмотров
schedule 02.10.2022

С++, почему бы не применить ptr_fun к ciCharLess при вызове lexicographical_compare
Вопрос 1> Я хотел бы знать, почему в случае I мы должны использовать not2(ptr_fun(ciCharCompare)) , а в случае II нам просто нужно использовать ciCharLess. Почему бы вместо этого не использовать ptr_fun(ciCharLess) ? Вопрос 2> Есть ли...
160 просмотров
schedule 30.04.2024