Powiedziano mi przez innych, że pisanie using namespace std;w kodzie jest źle, i że powinno się używać std::couti std::cinbezpośrednio zamiast. Dlaczego using namespace std;uważa się za złą praktykę? Czy jest nieefektywny, czy ryzykuje zadeklarowanie niejednoznacznych zmiennych (zmiennych o tej samej nazwie co funkcja w stdprzestrzeni nazw)? Czy wpływa to na …
Wszystko, co chcę zrobić, to sprawdzić, czy element istnieje w wektorze, czy nie, więc mogę poradzić sobie z każdym przypadkiem. if ( item_present ) do_this(); else do_that();
Ktoś zwrócił moją uwagę na ten artykuł, który twierdzi (parafrazuję), że termin STL jest niewłaściwie używany w odniesieniu do całej Standardowej Biblioteki C ++ zamiast części, które zostały zaczerpnięte z SGI STL. (...) odnosi się do „STL”, mimo że bardzo niewiele osób nadal korzysta z STL (który został zaprojektowany w …
Mam kod, który wygląda następująco: for (std::list<item*>::iterator i=items.begin();i!=items.end();i++) { bool isActive = (*i)->update(); //if (!isActive) // items.remove(*i); //else other_code_involving(*i); } items.remove_if(CheckItemNotActive); Chciałbym usunąć nieaktywne elementy natychmiast po ich aktualizacji, aby uniknąć ponownego przeglądania listy. Ale jeśli dodam skomentowane wiersze, pojawia się błąd, gdy dochodzę do i++: „Nie można zwiększać iteratora …
Wektory C ++ 11 mają nową funkcję emplace_back. W przeciwieństwie do tego push_back, który polega na optymalizacji kompilatora w celu uniknięcia kopiowania, emplace_backwykorzystuje doskonałe przekazywanie, aby wysyłać argumenty bezpośrednio do konstruktora w celu utworzenia obiektu w miejscu. Wydaje mi się, że emplace_backwszystko push_backrobi, ale czasami zrobi to lepiej (ale nigdy …
Ćwiczę wiele plików i plików nagłówkowych itp. Mam więc ten projekt, który bierze dwie liczby, a następnie dodaje je. Dość proste. Oto moje pliki: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); return(0); } io.cpp int readNumber() { int …
Czy w C ++ jest możliwe zastąpienie części łańcucha innym łańcuchem? Zasadniczo chciałbym to zrobić: QString string("hello $name"); string.replace("$name", "Somename"); Chciałbym jednak użyć standardowych bibliotek C ++.
Jakie są naprawdę dobre powody, aby zrezygnować std::allocatorz niestandardowego rozwiązania? Czy spotkałeś się z sytuacjami, w których było to absolutnie konieczne dla poprawności, wydajności, skalowalności itp.? Jakieś naprawdę sprytne przykłady? Niestandardowe podzielniki zawsze były cechą Biblioteki Standardowej, której nie potrzebowałem. Zastanawiałem się tylko, czy ktoś tutaj na SO mógłby podać …
Rozumiem, że stringjest to element członkowski stdprzestrzeni nazw, więc dlaczego ma miejsce następujący przebieg? #include <iostream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s", myString); cin.get(); return 0; } …
Podczas implementacji funkcji zwrotnej w C ++, czy nadal powinienem używać wskaźnika funkcji w stylu C: void (*callbackFunc)(int); Czy powinienem użyć std :: function: std::function< void(int) > callbackFunc;
Tworzę prostą aplikację, która wymaga kolorowego wydruku. Jak mogę sprawić, by moje wyjście było kolorowe, tak jak robią to emacs i bash? Nie obchodzi mnie Windows, ponieważ moja aplikacja jest przeznaczona tylko dla systemów UNIX.
C jest w pewnym sensie, nie do końca, podzbiorem C ++. Więc możemy używać większości funkcji / nagłówków C w C ++, zmieniając nieco nazwę ( stdio.hna cstdio, stdlib.hna cstdlib). Moje pytanie jest właściwie semantyczne. W kodzie C ++ (przy użyciu najnowszej wersji kompilatora GCC) mogę wywołać printf("Hello world!");i std::printf("Hello …
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.