Pytania otagowane jako c++-faq

Udostępnia wspólne C ++, edytowane przez społeczność FAQ

4
Jak przeładować std :: swap ()
std::swap()jest używany przez wiele kontenerów standardowych (takich jak std::listi std::vector) podczas sortowania, a nawet przypisywania. Jednak standardowa implementacja programu swap()jest bardzo uogólniona i raczej nieefektywna dla typów niestandardowych. W ten sposób wydajność można uzyskać przez przeciążenie std::swap()implementacją specyficzną dla niestandardowego typu. Ale jak można go zaimplementować, aby był używany przez …


4
Co to są przezroczyste komparatory?
W C ++ 14 wydaje się, że kontenery asocjacyjne zmieniły się z C ++ 11 - [Associative.reqmts] / 13 mówi: Szablony funkcji składowej find, count, lower_bound, upper_bound, i equal_rangenie powinien uczestniczyć w rozdzielczości przeciążenia chyba typ Compare::is_transparentistnieje. Jaki jest cel uczynienia komparatora „przejrzystym”? C ++ 14 udostępnia również szablony bibliotek, …
106 c++  c++14  c++-faq 



4
Jaka jest poprawna odpowiedź na cout << a ++ << a ;?
Niedawno w wywiadzie pojawiło się następujące pytanie typu obiektywnego. int a = 0; cout &lt;&lt; a++ &lt;&lt; a; Odpowiedzi: za. 10 b. 01 c. niezdefiniowane zachowanie Odpowiedziałem na wybór b, tj. Wyjście będzie „01”. Ale ku memu zdziwieniu później ankieter powiedział mi, że prawidłowa odpowiedź to opcja c: nieokreślona. Teraz …
98 c++  c++-faq 


17
Jaki jest sens wskaźników funkcji?
Mam problem ze zrozumieniem użyteczności wskaźników funkcji. Myślę, że w niektórych przypadkach może się to przydać (w końcu istnieją), ale nie przychodzi mi do głowy przypadek, w którym lepiej lub nieuniknione jest użycie wskaźnika funkcji. Czy możesz podać przykład dobrego wykorzystania wskaźników funkcji (w C lub C ++)?
94 c++  c  function  pointers  c++-faq 


2
Kiedy dodatkowe nawiasy mają wpływ, inny niż pierwszeństwo operatorów?
Nawiasy w C ++ są używane w wielu miejscach: np. W wywołaniach funkcji i wyrażeniach grupujących, aby przesłonić pierwszeństwo operatorów. Oprócz niedozwolonych dodatkowych nawiasów (takich jak listy argumentów wywołań funkcji), ogólna - ale nie bezwzględna - zasada C ++ mówi, że dodatkowe nawiasy nigdy nie zaszkodzą : 5.1 Wyrażenia podstawowe …

3
Czym dokładnie jest zasada „jak gdyby”?
Jak mówi tytuł, Czym dokładnie jest zasada „jak gdyby”? Typowa odpowiedź, jaką można uzyskać, to: Reguła zezwalająca na wszelkie transformacje kodu, które nie zmieniają obserwowalnego zachowania programu Od czasu do czasu otrzymujemy zachowania z pewnych implementacji, które są przypisane tej regule. Wiele razy źle. Na czym więc dokładnie polega ta …
89 c++  c  optimization  c++-faq  as-if 

5
Przekazywanie wspólnych wskaźników jako argumentów
Jeśli zadeklaruję obiekt zawinięty we współdzielony wskaźnik: std::shared_ptr&lt;myClass&gt; myClassObject(new myClass()); następnie chciałem przekazać to jako argument do metody: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr&lt;myClass&gt; arg1) { arg1-&gt;someField = 4; } Czy powyższe po prostu zwiększa liczbę referencji shared_pt i wszystko jest w porządku? A może pozostawia zwisający wskaźnik? Nadal masz …


1
Czym są przewodniki po odliczaniu szablonów i kiedy powinniśmy ich używać?
Standard C ++ 17 wprowadza „przewodniki po odliczaniu szablonów”. Rozumiem, że mają one coś wspólnego z nową dedukcją argumentów szablonu dla konstruktorów wprowadzoną w tej wersji standardu, ale nie widziałem jeszcze prostego wyjaśnienia w stylu FAQ, czym one są i do czego służą. Jakie są przewodniki po odliczaniu szablonów w …

1
gcc / g ++: „Nie ma takiego pliku lub katalogu”
g++ daje mi błędy w formularzu: foo.cc:&lt;line&gt;:&lt;column&gt;: fatal error: &lt;bar&gt;: No such file or directory compilation terminated. To samo dzieje się podczas kompilowania programów w C z gcc. Dlaczego? Uwaga: to pytanie zadawano już wiele razy, ale za każdym razem było to specyficzne dla sytuacji pytających. Celem tego pytania jest …
87 c++  c  gcc  g++  c++-faq 

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.