Przeczytałem w Internecie wiele samouczków, które wyjaśniały, jak używać lambd w standardowej bibliotece (np. std::find) I wszystkie były bardzo interesujące, ale nie mogłem znaleźć żadnego, który wyjaśniałby, jak mogę używać lambdy do moich własnych funkcji. Na przykład: int main() { int test = 5; LambdaTest([&](int a) { test += a; …
Czy można sprawdzić, czy std::futureskończył się, czy nie? O ile wiem, jedynym sposobem byłoby zadzwonić wait_forz zerowym czasem trwania i sprawdzić, czy status jest, readyczy nie, ale czy jest lepszy sposób?
Widziałem więc wykład o nazwie rand () Uważany za szkodliwy, który zalecał użycie paradygmatu dystrybucji przez silnik generowania liczb losowych zamiast prostego std::rand()paradygmatu plus moduł. Chciałem jednak na std::rand()własne oczy zobaczyć wady, więc zrobiłem szybki eksperyment: Zasadniczo, pisałem 2 funkcje getRandNum_Old()i getRandNum_New()który wygenerował liczbę losową z zakresu od 0 do …
Myślę, że pytanie jest wystarczająco jasne. Czy autosłowo kluczowe automatycznie wykryje stałą, czy zawsze zwróci typ inny niż stała, nawet jeśli istnieją np. dwie wersje funkcji (jedna, która zwraca, consta druga nie). Tak dla przypomnienia, używam const auto end = some_container.end()przed moimi pętlami for, ale nie wiem, czy jest to …
Wymagania dotyczące kontenerów zostały zmienione z C ++ 03 na C ++ 11. Podczas gdy C ++ 03 miał ogólne wymagania (np. Kopiowalność konstruowalności i przypisywalność dla wektora), C ++ 11 definiuje szczegółowe wymagania dotyczące każdej operacji kontenera (sekcja 23.2). W rezultacie możesz np. Przechowywać w wektorze typ, który można …
Obecnie pracuję z pamięcią współdzieloną. Nie rozumiem alignofi alignas. cppreference jest niejasne: alignofzwraca „wyrównanie”, ale co to jest „wyrównanie”? liczba bajtów do dodania dla następnego bloku do wyrównania? wyściełany rozmiar? Przepełnienie stosu / wpisy na blogach również są niejasne. Czy ktoś może wyjaśnić jasno alignofi alignas?
Strona odniesienia isnormal () mówi: Określa, czy podana liczba zmiennoprzecinkowa arg jest normalna, tj. Nie jest równa zeru, podnormalna, nieskończona ani NaN. Liczba równa zero, nieskończona lub NaN jest jasne, co to znaczy. Ale mówi też, że jest to nienormalne. Kiedy liczba jest niższa od normy?
Widzę mieszane użycie tych dwóch terminów tutaj na SO. Wikipedia mówi C ++ 11, wcześniej znany również jako C ++ 0x ... ale nie wiem dlaczego. Dlaczego najpierw został nazwany C ++ 0x, a potem C ++ 11? Co oznacza x? Zgaduję - jak zmienna?
Rozwiązanie algorytmu: std::generate(numbers.begin(), numbers.end(), rand); Rozwiązanie for-loop oparte na zakresie: for (int& x : numbers) x = rand(); Dlaczego miałbym chcieć używać bardziej szczegółowych std::generatepętli for opartych na zakresie w C ++ 11?
Czytam The C ++ Programming Language, 4th Edition (by Bjarne Stroustrup ) owyszukiwanie zależne od argumentów. Oto cytat (26.3.6, Overaggressive ADL): Wyszukiwanie zależne od argumentów (często nazywane ADL) jest bardzo przydatne w celu uniknięcia gadatliwości (14.2.4). Na przykład: #include <iostream> int main() { std::cout << "Hello, world" << endl; // …
Obecnie pracuję nad projektem i mam następujący problem. Mam metodę C ++, którą chcę pracować na dwa różne sposoby: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } I nie chciałbym powielać swojego kodu, ponieważ rzeczywista funkcja jest znacznie dłuższa. Problem polega na tym, …
Cplusplus.com shared_ptrstrona nazywa się rozróżnienie między pusty std::shared_ptr a wartość null shared_ptr . Strona cppreference.com nie wyjaśnia wyraźnie tego rozróżnienia, ale nullptrw opisie std::shared_ptrzachowania używa zarówno słowa „pusty”, jak i porównania . Czy jest różnica między pustym a null shared_ptr? Czy jest jakiś przypadek użycia dla takich wskaźników o mieszanym …
Przechodzę w kierunku C ++ 11 z C ++ 98 i zapoznałem się ze autosłowem kluczowym. Zastanawiałem się, dlaczego musimy jawnie zadeklarować, autoczy kompilator może automatycznie wydedukować typ. Wiem, że C ++ jest językiem silnie typizowanym i jest to reguła, ale czy nie można było osiągnąć tego samego wyniku bez …
W c ++ 03 i wcześniejszych, aby wyłączyć ostrzeżenie kompilatora o nieużywanym parametrze, zwykle używam takiego kodu: #define UNUSED(expr) do { (void)(expr); } while (0) Na przykład int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } Ale makra nie są najlepszą praktyką dla języka C ++, więc. Czy …
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; …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.