Запитання з тегом «stdvector»

Тип послідовності, визначений як частина Стандартної бібліотеки.

2
Дивна поведінка з полями класів при додаванні до std :: vector
Я знайшов дуже дивну поведінку (на кланг та GCC) у наступній ситуації. У мене вектор, nodesз одним елементом, екземпляр класу Node. Потім я викликаю функцію, nodes[0]яка додає нове Nodeу вектор. Коли додається новий Вузол, поля виклику об'єкта скидаються! Однак вони, здається, знову повертаються до норми, коли функція закінчена. Я вважаю, …

6
Чи безпечно поміняти два різні вектори на C ++, використовуючи метод swap std :: vector ::?
Припустимо, у вас є такий код: #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; …
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 …

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