Pytania otagowane jako vector

Wektor jest tablicą jednowymiarową: zawiera komponenty, do których można uzyskać dostęp za pomocą indeksu całkowego. W niektórych językach rozmiar wektora może się zwiększać lub zmniejszać w zależności od potrzeb, aby umożliwić dodawanie i usuwanie elementów po utworzeniu wektora. Użyj „grafiki wektorowej” do wyświetlania grafiki.

10
Używanie std :: vector jako widoku surowej pamięci
Korzystam z zewnętrznej biblioteki, która w pewnym momencie daje mi surowy wskaźnik do tablicy liczb całkowitych i rozmiaru. Teraz chciałbym użyć, std::vectoraby uzyskać dostęp i zmodyfikować te wartości w miejscu, zamiast uzyskiwać do nich dostęp za pomocą surowych wskaźników. Oto sztuczny przykład, który wyjaśnia tę kwestię: size_t size = 0; …
71 c++  c++11  vector  stdvector 


2
Dziwne zachowanie z polami klasy podczas dodawania do std :: vector
Znalazłem bardzo dziwne zachowanie (na clang i GCC) w następującej sytuacji. Mam wektor, nodesz jednym elementem, instancją klasy Node. Następnie wywołuję funkcję, nodes[0]która dodaje nową wartość Nodedo wektora. Po dodaniu nowego węzła pola obiektu wywołującego są resetowane! Wydają się jednak wracać do normy po zakończeniu funkcji. Uważam, że jest to …

6
Czy bezpiecznie jest zamienić dwa różne wektory w C ++, używając metody std :: vector :: swap?
Załóżmy, że masz następujący kod: #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; } Wyobraź sobie, że wektor nie jest std::stringjeszcze klasą: std::vector<Widget> WidgetVector; std::vector<Widget2> Widget2Vector; …
30 c++  c++11  vector  stdvector  swap 

3
Sortowanie wektora w porządku malejącym w dwóch zakresach
Powiedzmy, że mam wektor liczb całkowitych: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Następnie sortuję je w kolejności malejącej: 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]); To powoduje: 14 13 12 11 10 9 8 7 6 5 …

2
Jak wektor jako klucz działa wewnętrznie w C ++?
Ta odpowiedź SO mówi, że mapa STL z wektorem dla klucza wektor może być używany jako klucz. Więc kiedy używamy wektora jako klucza. Jak to faktycznie działa, skoro klucz musi być unikalny, więc kiedy wstawimy inny wektor z tymi samymi elementami, czy mapsprawdzanie duplikatu elementu po elemencie lub nazwa wektora …
14 c++  arrays  dictionary  vector  stl 

1
Czy mogę zainicjować listę std :: vector z doskonałym przekazywaniem elementów?
Zauważyłem, że zbiorczą listę initalization std :: vector wykonuje skopiować inicjalizacji gdy ruch jest bardziej dotyczy. W tym samym czasie wiele lokacebacków robi to, co chcę. Mogłem tylko wymyślić to niedoskonałe rozwiązanie pisania funkcji szablonu init_emplace_vector. Jest to jednak optymalne tylko dla nieprecyzyjnych konstruktorów pojedynczej wartości . template <typename T, …


2
Inicjalizacja wektora atomowego
Rozważać: void foo() { std::vector<std::atomic<int>> foo(10); ... } Czy zawartość foo jest teraz aktualna? Czy też muszę je przejrzeć i zainicjować? Sprawdziłem Godbolt i wydaje się, że jest w porządku, jednak standard wydaje się być bardzo zagmatwany w tym punkcie. Konstruktor std :: vector mówi, że wstawia instancje wstawione domyślniestd::atomic<int> …
12 c++  vector  atomic 


7
Kasowanie () elementu w wektorze nie działa
Mam wektor. Muszę usunąć ostatnie 3 elementy. Opisał tę logikę. Program ulega awarii. Co może być pomyłką? vector<float>::iterator d = X.end(); for (size_t i = 1; i < 3; i++) { if (i == 1) X.erase(d); else X.erase(d - i); }
10 c++  vector 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.