Mamy mape w C++. Klucze to wartosci inta. Teraz wartosc na kluczu definuje, zakres do nowej wartosci. Np. (10,"KOT"), ("20",PIES), mowi nam o zakresie o wartosci kod do 19, a od 20 do konca inta mamy PSA.

Da sie szybciej niz w czasie O(n), wstawic nowy zakres od, do ? Np. Chcialbym miec zakres od 8 do 23 o wartosci "SEBA". (a od wartosci 24 znowu leci pies)

#programowanie #
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@losiul: @piternet: Niestety musiałem zastosować map z c++. Dane nie są podane w czasie kompilacji :) Wydaje mi się że na tym nie da się zrobić drzewa przedziałowego (bo potrzebuje struktury która będzie mogła pomieścić 2*N-1 przedziałów, gdzie N to zakres jakie wartości beda).
  • Odpowiedz
#programowanie #cpp

Zastanawiałem się kiedyś, czy można jakoś automatycznie wyciągać typ po którym dziedziczymy w c++, coś w stylu

super
, nic na ten temat nie znalazłem ciekawego. W jakimś wątku na SO twierdzili nawet, że to niemożliwe. Potrzebuję to, żeby uniknąć błędów przy wywoływaniu metod z bazy z overridowanych metod virtualnych w aktualnej klasie.
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kuhar: W C++ nie ma takiego mechanizmu, bo jest wielodziedziczenie - co miałoby oznaczać jakieś "super" w takim wypadku? Z tego samego powodu, przy dziedziczeniu po kilku klasach będziesz miał niejednoznaczne definicje.

Ciekawi mnie raczej, jakich błędów chcesz się ustrzec korzystając z tego mechanizmu?
  • Odpowiedz
@kuhar: A, w takim razie jest na 100% zgodne ze standardem, ale zatrzeƶenia @losiul są sensowne.

Sorry, dopiero się obudziłem ;)

Btw: zacytowałeś kawałek dotyczący "non-class scope", a przykład wyraźnie jest wewnątrz klasy
  • Odpowiedz
Gdy przeniosłem się z #python na #cpp myślałem, że otrzymałem całkowitą wolność. A tu proszę: http://pastebin.com/LbTvne6x - prosty przykład dwóch problemów jakie napotkałem; niemożność przeciążenia funkcji typem o tym samym typie podstawowym co ten użyty w już istniejącej funkcji oraz fakt, że definicja operatora nie może być szablonem. To taki sobie prosty przykład ale mam 10 podklas jednej klasy i fajnie by było móc użyć szablonu... chyba, że
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@smsrampage: W takim razie

*this = ref
powinno być wystarczające, w przeciwnym wypadku tworzysz (zbędny) obiekt tymczasowy po prawej stronie wyraƶenia, a dopiero ten obiekt kopiujesz to

*this
.
  • Odpowiedz
@Dewid: Nie ma w iostream ani stdlibie czegoś takiego. Użyj ncurses jak potrzebujesz bardziej skomplikowane TUI lub readline jeśli piszesz REPLa.

@aktez98: @Stramekz: @Niebieskowaty: Tylko na Windzie i to bardzo niestandardowa funkcja i hejtowana nawet przez M$ (gdyż to pozostałości DOSa).
  • Odpowiedz
Jaka książkę polecacie do nauki #cpp i dlaczego tu jest taki hejt na symfonię c++? Zacząłem czytać "Thinking in c++" i wydaje się być całkiem przyjemnie napisana, ale wydanie z 2002 roku i zakłada że mam trochę większą wiedzę niż mam. Chciałbym jeszcze jakąś bardziej łopatologiczną i aktualną gdybym nie ogarniał tego co Eckel napisał. Za czym się rozglądać?

#programowanie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Hirunkan: @qubeq: To znaczy generalnie te podstawy w niej zawarte są dobrze opisane, a po prostu brakuje niektórych rzeczy? To "thinking" też powinno być nieaktualne, ale z tego co widzę to dalej dobre opinię zbierać. Jeśli chodzi o projekty to mam coś w głowie, ale na razie zbieram wiedzę i robie tylko jakieś tam ćwiczenia.
  • Odpowiedz
@Modelowy:

http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/

http://www.amazon.com/The-Programming-Language-4th-Edition/dp/0321563840/

Dlaczego hejt? Bo hejt jest popularny, nie trzeba przeczytać książki żeby ją hejcić. Teraz jest pokolenie które w ogóle nie czyta książek, a co dopiero informatycznych, nie pobiera wiedzy od autorytetów tylko od anonimów ze stacka. Wszystko jest w internecie - tylko poziomem wiedzy się nikt jakoś nie martwi.
  • Odpowiedz
kolejna paczka ofert pracy ( szczegóły na PW ) :

Service Analyst - FR + EN or DE + EN

Receptionist - FR + EN

Monitoring
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zaczynam się uczyć od nowa programować, nie robiłem w tym kierunku nic przez jakieś 3 lata, więc jestem trochę nie w temacie. Wybrałem C++, bo już jakieś pojęcie o nim mam, tak do wskaźników. Moje pytanie brzmi: jakie IDE wybrać? Kiedyś używałem Code::Blocks, czy nadaje się to do bardziej profesjonalnego użytku? Nie chcę się przesiadać potem, wolałbym od razu zacząć w jakimś programie, którego będę używał też w przyszłości.

#programowanie
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Modelowy: Daruj sobie Code::Blocks, szkoda nerwów. Polecam Visual C++ Express - to w pełni funkcjonalne, darmowe IDE. QtCreator jest też niezły i niekoniecznie trzeba w nim pisać programy z użyciem Qt.
  • Odpowiedz
@Modelowy: Ok. Więc tak:

Windows:

- Microsoft Visual C++ nie jest złym IDE. Jednakże nie mam pojęcia jak dobrze wspiera C++x11 (czyli najnowszy standard). Podpowiadanie składni itp. wszystko w komplecie. W środku siedzi ich własny kompilator. Większość bibliotek ma wersje pod MsVCpp. Nie pamiętam czy wersja darmowa wspiera jakikolwiek system kontroli
  • Odpowiedz
Przepraszam za zadanie pytania, ale nie rozumiem co się tam wyprawia i dlaczego coś co napisałam nie działa.

Kompiluje się, ale nie działa. Wywala się takie coś w moim IDE: RUN FAILED (exit value 1, total time: 130ms) Mogłabym się dowiedzieć od kogoś miłego co robię źle?

#cpp #programowanie

#
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kuhar: Powinnam napisać że problem rozwiązany. Troszeczkę inaczej, bez użycia strlen() ale też prawidłowo.

Właśnie dlatego że wiem że muszę opanować takie podstawy to robię. :)
  • Odpowiedz
Właśnie próbuję opanować bibliotekę GTK+ 2 w Code Blocks i mam problem. C++

http://pastebin.com/mEqyn7zp

Wszystko szło ok, wstawiałem widgety typu menu, przyciski i program się kompilował i działał zgodnie z założeniem. Problem pojawił się, gdy chciałem narysować coś własnego używając funkcji z rodziny gdk_draw*

W
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj na forum jakiś gość zapytał o możliwość wykonania pewnej metody dla każdego z elementów tablicy nie stosując pętli. Zapewne chodziło mu o coś kompletnie innego i nie potrafił sprecyzować swojego problemu. Ale co tam. To C++. W nim można wszystko.

I powstał taki kod: http://forum.4programmers.net/C_i_C++/236349-from_int_to_string_without_loop?p=1048782#id1048782

Dla weteranów C++ ten kod jest banalny, ale dla tych, którzy z metaprogramowaniem na szablonach nie mieli dużo wspólnego może być ciekawy. Zastosowałem dwie "sztuczki". Pierwsza z nich
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp

Mirki kolejny magiczny problem, mam program okienkowy, napisany w qt creatorze. Obecnie on działa, jednak zacząłem go rozbudowywać, dlatego chciałem coś zrobić z jedną etykietą. Pierwsze co zrobiłem to usunąłem. Tylko problem jest taki, że w wersji release program się kompiluje bez błędów, jednak po odpaleniu, kiedy program jest w 1/5 tego co ma liczyć, program się wysypuje. W wersji debug cały program działa poprawnie.

Próbowałem
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nurek: Nie, QThreadPool to klasa w Qt. To pula wątków. Pytam, bo poza tworzeniem wątków w sposób jawny, można też używać pul wątków. To, że program się wysypuje przy kompilacji release, ale nie w debug sugeruje, że może to mieć związek z prędkością wykonywania, a co za tym idzie - z wątkami. Jeśli natomiast nie używasz więcej niż 1 wątku (jeśli nie wiesz, to pewnie nie używasz, chyba że przejąłeś
  • Odpowiedz
@tomekswk:

Programu wrzucić nie mogę, bo jest to program firmy, w której robię praktyki. Tak jak domyślił się @vipe program był już napisany wcześniej, ja natomiast muszę dopisać najpierw trochę kodu aby zwiększyć funkcjonalność, a następnie zmienić wygląd (tak aby okienko aplikacji zmieniało się w zależności od tego co się wybierze, i parę rzeczy jeszcze zmienić). Dzisiaj już z tym nic nie zrobię, dopiero jutro popróbuję z tymi qDebugami.
  • Odpowiedz