stdvector- все статьи тега


Должен ли я итератировать вектор с помощью итератора или оператора доступа?

У меня есть вектор, объявленный как std::vector<int> MyVector; MyVector.push_back(5); MyVector.push_back(6); MyVector.push_back(7); Как я должен использовать его в цикле for? Повторяя его с помощью итератора? for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it) { std::cout << "Vector element (*it): " << *it << std::endl; } Или его итератором доступа? for (std::vector<int>::size_type i=0; i<MyVector.size(); i++) { s ...

Инициализация вектора std::со списком последовательных целых чисел без знака

Я хочу использовать специальный метод для инициализации std::vector<unsigned int>, который описан в книге C++, которую я использую в качестве ссылки (немецкая книга "Der C++ Programmer" Ульриха Бреймана, если это имеет значение). В этой книге есть раздел о типах последовательностей STL, относящийся, в частности, к list, vector и deque. В этом разделе он пишет, что существуют два специальных конструктора таких типов последовательностей, а именно, если Xотносится к такому типу, X(n, t) // ...

Является ли хорошей практикой использование std:: vector в качестве простого буфера?

У меня есть приложение, которое выполняет некоторую обработку некоторых изображений. Учитывая, что я знаю ширину / высоту / формат и т. д. (Я делаю), и думаю только об определении буфера для хранения пиксельных данных: Тогда, вместо того чтобы использовать new и delete [] на unsigned char* и держать отдельную заметку о размере буфера, я думаю об упрощении вещей с помощью std::vector. Поэтому я бы объявил свой класс примерно так: #include <vector> class MyClass { // ... etc. ... ...

C++ valarray против вектора

Мне очень нравятся векторы. Они ловкие и быстрые. Но я знаю, что такая вещь существует valarray. Почему я должен использовать valarray вместо вектора? Я знаю, что у valarrays есть некоторый синтаксический сахар, но кроме этого, когда они полезны? ...

Как отсортировать вектор пар на основе второго элемента пары?

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

C++: сравнение двух векторов

есть ли способ сравнить два вектора? if (vector1 == vector2) DoSomething(); Примечание: в настоящее время, эти векторы не отсортированы и содержат целые значения. ...