Вопросы с тегом «stdvector»

Тип последовательности, определенный как часть стандартной библиотеки.

2
Странное поведение с полями классов при добавлении в std :: vector
Я обнаружил очень странное поведение (на Clang и GCC) в следующей ситуации. У меня есть вектор, nodesс одним элементом, экземпляр класса Node. Затем я вызываю функцию, nodes[0]которая добавляет новый Nodeвектор. При добавлении нового узла поля вызывающего объекта сбрасываются! Однако они, похоже, снова возвращаются в нормальное состояние после завершения функции. Я …

6
Безопасно ли поменять местами два разных вектора в C ++, используя метод std :: vector :: swap?
Предположим, что у вас есть следующий код: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Представьте, что вектора нет std::string, но классы: std::vector<Widget> WidgetVector; std::vector<Widget2> …
30 c++  c++11  vector  stdvector  swap 

3
Сортировка вектора по убыванию в двух диапазонах
Скажем, у меня есть вектор целых чисел: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Затем я сортирую это в порядке убывания: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Это производит следующее: 14 13 12 11 10 9 8 …

1
Современный подход к созданию std :: vector для выравнивания памяти
Следующий вопрос связан, однако ответы на старые, и комментарий от пользователя Marc Glisse предполагает , что есть новые подходы , начиная с C ++ 17 к решению этой проблемы , которые не могут быть адекватно обсуждены. Я пытаюсь выровнять память, работающую правильно для SIMD, при этом все еще имея доступ …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.