@zortabla_rt: @brylant_brylant: Sortowanie ma złożoność obliczeniową O(n logn), należy wystrzegać się sortowania dużych tablic. Proponuję zrobić to odwrotnie... Najpierw przejechać całą tablicę od lewa do prawa i przepisać do drugiej tablicy wszystkie elementy, które są podzielne przez 5 (reszta z dzielenia przez 5 == 0).

Dopiero wtedy sortujesz tę tablicę. Dzięki temu sortujesz mniej elementów ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@MamCieNaHita: Tyle że w twoim wypadku napisanie static do factorials::tab wymaga aby ta zmienna wisiała w pamięci, a reguła ODR wymaga od niej jednego miejsca definicji czyli to co podał @Lerhond. Generalnie już lepiej robić osobne zmienne poza klasą, np w jakimś namespacesie, albo deklarować to jako statyczną funkcję constexpr. dek Zmienna i w pętli nie jest constexpr więc jej użycie nie da wartości constexpr, Jednak da podpowiedź
  • Odpowiedz
Czy da się stworzyć w c++ listę złożoną z obiektów różnych klas? Coś w stylu:
`class Shape{
public:
int a;
};

class
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Snori: Na pytanie postawione stricte w ten sposób jedną odpowiedzią jest że język tego nie umożliwia.
Dlatego robi się listę wskaźników na obiekty polimorficzne. Jak sobie z nimi poradzić? Poprzez dynamiczne rzutowanie:
Sphere* s = dynamic_cast(List[0]);
if( s ) // sprawdzenie czy s != nullptr, które dynamic cast zwraca gdy obiekt nie jest
  • Odpowiedz
@Snori: robisz tablicę typów std::variant (jeśli ma ograniczony zbiór możliwych klas), albo std::any, jeśli nieokreślony. Variant wygeneruje szybszy kod.
  • Odpowiedz
jaką polecacie książkę do nauki c++? nie musi być zupełnie od podstaw, bo na studiach maiłem trochę programowania, także takie pojęcia jak konstruktor, destruktor, klasy itp. nie są mi obce, jednak chciałby rzetelnie przerobić wszystko od początku i sobie przypomnieć.
jak najbardziej może być po angielsku
#programowanie #cpp
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

jak to się dzieje, że to działa?

constexpr const char &at(const std::size_t &n) const {
if (n >= size)
throw std::outofrange(std::to_string(n));
return _data[n];
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n_i_e_rozumiem: Ale co tu ma nie działać? Constexpr jest tylko podpowiedzią dla kompilatora, możliwe że skompiluje się jako zwykła funkacja. Co ciekawe przy obliczaniu wartości constexpr jest analizowana tylko jedna gałąź brancha, czyli dla n mniejszego od rozmiaru to trow wogóle nie jest brane pod uwagę.
Dzięki temu łatwo można sprawdzić czy czasem funkcja constepr nie została skompilowana wołając np nie zaimplementowaną funkcję w branczu ale koniecznie zależnym od parametru.
  • Odpowiedz
Mam klasę abstrakcyjną Blob z funkcjami wirtualnymi Blob::fromArray(const QByteArray& raw) i Blob::toByteArray()->QByteArray. Weźmy jej klasę pochodną, Matrix; przeciążyłem operatory QDataStream w taki sposób:

QDataStream& operator<<(QDataStream& stream, const Matrix& in) {
stream << in.toArray();
}
QDataStream& operator>>(QDataStream& stream, Matrix& out) {
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp

Moje ostatnie doświadczenia w pracy przypominają mi budowanie ściany z pustaków. Z tym, że pomiędzy pustakami zaprawa jest z rzadkiego gówna, trzeba ją nakładać widłami i pustaki też trzeba układać widłami.

  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

no elo. czy zawsze powinno się używać inteligentnych wskaźników? w STLu nie ma listy cyklicznej, której potrzebuję, więc muszę ją sobie sam naskrobać. powinienem to zrobić na unique_ptr'ach z std::move przy usuwaniu elementu, przepinaniu elementu, etc, czy może po prostu zrobić po barbarzyńsku na gołych wskaźnikach z myślą, że nie przeoczę żadnego wycieku i będzie cacy?

#cpp #naukaprogramowania
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MamCieNaHita: unique_ptr jest darmowy*, więc jeśli coś ma trzymać zasób, to właśnie za pomocą uniqueptr.
shared_ptr używasz, gdy potrzebujesz tej funkcjonalności (nie z lenistwa).

* tylko musisz rozważyć przypadek, gdy oparłeś kolejne gałęzie swojego
  • Odpowiedz
@nargil: a nie ma jakiegoś oodpowiednika sendmail? ;p wiem że trochę januszowo to cisnę, ale uczymy się ze znajomym kucem windows.h i keyloggera napisaliśmy ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Atraktor:

void getVal(int val)
{
    jakas_zmienna = val;
}
Co za herezja. Przedrostkiem get zazwyczaj oznaczamy getter czyli coś co pobiera i zwraca wartość. Używanie tego w innym kontekście to co najmniej zła praktyka.
  • Odpowiedz
Mirki mam problem z #cpp #codeblocks 16.01. Otóż kiedy program musi wyświetlić dużą ilość linijek w konsoli (na przykład podczas pętli majacej wyświetlić 10000 liczb każda w osobnej linijce) to wyświetlane są tylko ostatnie (kilkaset ostatnich). Wie ktoś może jak to rozwiazać?
#naukaprogramowania
#programowanie
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej.
Piszę program, który wypełnia tablicę 9x9 zgodnie z zasadami kwadratu łacińskiego (takie sudoku, tylko cyfry mogą się powtarzać w "mniejszych" kwadratach).

Tutaj kod: http://pastebin.com/CzTH1h13

Mam tam dwie funkcje czyWiersz i czyKolumna, które sprawdzają czy cyfry się powtórzyły w wierszu lub kolumnie.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chciałbym w ramach nauki i samorozwoju napisać program, który robił by takie czary jak po włączeniu go prosił o wybranie urządzenia, następnie sprawdzał spójność plików w 3 folderach z 3 folderami na Google Drive, następnie pobierałby te nowsze pliki i zastępował je na urządzeniu. Ogarnę to jako laik w dwa miesiące? Znaczy coś tam kiedyś kodziłem, ale to z teoretycznej strony. Tam, zamierzam to wygooglować, ale siedzę w pracy i jeszcze nie
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wykopki, czy ktoś łączył najprostszą aplikację konsolową #cplusplus #cpp z bazą #mysql #bazydanych ? Zanim ktoś mi wyśle pierwszy link z googla - przeglądałem toturiale i z googla i z youtuba. Wszędzie pokazują tak samo, albo prawie tak samo, a mnie caly czas wyskakują błędy z linkera.
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ponton: errors were occurred :Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol mysqlerror@4 referenced in function main
Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol
mysqlinit@4 referenced in function main
Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol mysqlrealconnect@32 referenced in function main

Tego typu, wzięte z komentarza pod filmikiem jaki
  • Odpowiedz
-w Linker/Input/Additional dependencies dałem libmysql.lib


@Slowo: spróbuj -lmysql, przynajmniej na Linuksie jest taka konwencja, że zamiast libfoo-X.Y.so podaje się opcję -lfoo.
  • Odpowiedz