Публикации по теме '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