piszę prostą grę w c++ i mam funkcję, która ustawia mi wartość parametru obiektu będącego instancja pewnej klasy oraz mam pętlę while, w której wykorzystuję ten parametr. chcę zrobić tak, że jeśli ten parametr jest ustawiony na jakąkolwiek inną wartość niż neutralna, to ta wartość ma się utrzymać przez dokładnie jedną iterację pętli, potem ma się ustawiać na wartość neutralną. jak coś takiego zrobić?

wygląda to mniej więcej tak:

class Klasa
{
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RedveKoronny: Po co ludzie piszący w C++ muszą mieć system budowania projektu oparty o język skryptowy kompletny w sensie Turinga, i dodatkowo tak fatalny jak ten DSL w CMake? Dlaczego wszystkie inicjatywy napisania kolejnego systemu budowania dla C++ kończą się takim przekombinowaniem, że robi się z tego cały nowy język programowania? Zastanawiam się, czy to nie jest jakaś forma masochizmu. Tak jak by nie można było oprzeć budowania projektu na
  • Odpowiedz
ZDALNIE - C++ developer - do 1100PLN/MD - REGULAR

Cześć, szukam C++ regulara do nowego projektu u mojego klienta.
Branża lotnicza, czysty backend. Budujemy zespołu do rozwinięcia MVP klienta, a polega to na przetwarzaniu danych z linii lotniczych i robieniu z nimi różnych rzeczy. Raczej spokojny projekt się szykuje.

Tech: C++ 17, REST, GIT, Maven
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MetroStation:
pracait to zgoła inny tag. Ludzie zadają tam pytania odnośnie pracy w IT, chociażby.
Zamiast cwaniakować możesz nie utrudniać życia użytkownikom i zrobić inny tag, gdzie będziesz wrzucał ogłoszenia ( ͡~ ͜ʖ ͡°)
  • Odpowiedz
Napisałem program w c++, który robi jakieś obliczenia, następnie odpalam go w tle na linuksie za pomocą komendy nohup. Po pewnym czasie chciałbym go odpytać o dane jakie zebrał i tutaj pojawia się problem, jak to zrealizować? Jak odpalić jakiś event na działającym już programie?

#programowanie #cpp
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Malkof: odpalaj takie programy w screenie. Polecenie screen, odpalasz i normalnie gasisz terminal.

Po jakimś czasie możesz zrobić screen -r i podłączasz się do odpalonego screena. Możesz mieć ich dużo - listujesz screen -ls
  • Odpowiedz
Siema, potrzebuje napisać kod (w #cpp), który odejmie dwa timepointy i wynik w milisekundach porówna z intem.

Pseudokod:

timepoint old;
timepoint
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Napisałem asynchroniczny serwer, który obsługuje wiele połączeń. Połączenie jest reprezentowane jako osobna klasa, pod którą dane są odbierane/wysyłane. Samo połączenia nadzorowane są przez klasę serwera. Tutaj rodzi się pytanie związane z architekturą. Jaki jest najbardziej elegancki sposób, żeby odebrane dane przekazać do klas wyżej nad serwerem? Mam na myśli klasę, która będzie te dane przetwarzała.

W głowie mam zastosowanie kolejki, do której dane będą zapisywane, ale żeby coś z niej odczytać klasa konsumująca
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval: jak pracowałem przy LTE to był podobny problem. i było to właśnie rozwiązane przez klasę wyżej które przekazuje to potem dalej i dalej. ogólnie sama architektura LTE jest na bazie warstw, i warstwy wyżej decydują gdzie co idzie aż do docelowych miejsc
  • Odpowiedz
jeśli mam vectora złożonego z obiektów, jak mogę znaleźć ilość obiektów w tym vectorze które posiadają daną wartość jednego z jego atrybutów?

przykładowo, mam coś takiego:

struct Obiekty
{
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 4
@RedveKoronny: tak, tylko raz wewnątrz funkcji seedujesz a pozostałe 1199 razy tworzysz nowy generator i zostawiasz go z domyślnym seedem. Potrzebujesz jeden generator i seedowac go raz
  • Odpowiedz
Z czego wynika popularność std::map aka drzewo czerwono-czarne? Praktycznie zawsze, gdy robię benchmarki mapa jest wolniejszy od jakiegoś innego kontenera. Często widzę, że polecana jest jako "lookup table", gdzie hashMapa wydaje się być dużo lepsza.
Czy byłby ktoś w stanie wskazać jakiś przypadek, gdzie std::map dobrze się sprawdza?
Pytanie nie dotyczy narzutu pamięci.
#cpp
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Malkof: Chyba jedyna zaleta to, że jest posortowana i można szukać zakresu wartości, albo n.p. można wyszukać najdłuższy prefix. Dla wszyskich innych przypadków gdzie kolejność po kluczu nie ma znaczenia, to dobra implementacja unsorted_map będzie znacząco szybsza.

A jeżeli kolejność się liczy, to są przypadki gdzie posortowany std::vertor będzie szybszy, chociaż chyba jest coś, co się nazywa flat_map co działa podobnie (szybkie przeglądanie na przedziale iteratorów; implementacja jest chyba w
  • Odpowiedz
@lionbest: @Passer93: Już kilka razy spotkałem się, że na reddicie/stackoverflow ktoś pisał o tym, jak mapa jest wspaniała, a w projekcie nad którym pracuje stosunek użycia hashMapy do mapy to 1:53(sic).
Dobrze wiedzieć, że jednak nie zwariowałem.
  • Odpowiedz
#naukaprogramowania #cpp
mam silnik gry, i funkcję która aktualizuje pozycje wszystkich obiektów, ale wymaga do tego informacji ile czasu minęło od ostatniego wywołania tej funkcji.

W jaki sposób to zmierzyć?
miałem pomysł:
static timestamp t1
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Obecnie robię codewarsy + przerabiam Teoria i praktyka z wykorzystaniem C++ od Stroustrup, po przerobieniu książki mam zamiar pisać jakieś proste programy i nadal bawić się w codewarsy
Optymalny ten tok nauki? Celem jest dostanie stażu w przyszłe wakacje ( ͡° ͜ʖ ͡°)
#cpp #naukaprogramowania
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Podrzućcie jakieś ciekawe, albo zaawansowane(albo nie podstawowe) pytania/zadania rekrutacyjne dla programisty C++.
Mogą być też z rzeczy powiązane np. linuks, narzędza, algorytmy.

Moje:
1. Zaimplementuj shared/unique pointer
2. Jakie znasz optymalizacje i flagi kompilatora. Czyli O2, O3, tco, sso, Wall, Wpathetic itd.
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Malkof: są różne triki, wyobraź sobie, że pod spodem siedzi unia, gdzie jedna z możliwości to 3 wskaźniki (begin, end, cappacity), a druga to bufor o rozmiarze trzech wskaźników. który z tych memberow jest aktywny, to już zależy od logiki. najprościej dołożyć boola :P. ale są sprytniejsze sposoby z tego co pamiętam
  • Odpowiedz
ja mam pytanie zasadnicze, dlaczego te wszystkie Janusze na forach typu 4programmers tak bardzo k----a na te kursy Zelenta z c++? tam rzeczywiście sa jakieś poważne błędy (jak tak to jakie) czy to po prostu jest p---------e starych dziadów bo ktoś potrafi wytłumaczyć trudne dla studentów zagadnienia lepiej niż oni na swoich zatechlych wykładach?
#programowanie #programista15k #polibuda #cpp #cplusplus
  • 39
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@yungdupa: bo uczy takiego c++, jaki się pisało ~20 lat temu. Dla początkującego nie ma to za bardzo znaczenia, ale warto mieć na uwadze, że obecnie się tak nie pisze, bo język "troszkę" wyewoluował
  • Odpowiedz
@yungdupa: nie znam typa, ale spojrzałem na https://miroslawzelent.pl/kurs-c++/sortowanie-zlozonosc-algorytmow/ i jest źle. Pominę polskie nazwy zmiennych, bo to może być fajne jak ktoś się uczy. Ale typ alokuje ręcznie tablice zamiast użyć std::vector. Używa też przestarzałych rzeczy jak clock, time czy rand zamiast std::chrono i tego co jest w . No i używa zmiennych globalnych - do tego zupełnie bez sensu, bo używa ich tylko w main().

Typ może i coś
  • Odpowiedz
using namespace std;
czy
std::cout
Podobno używanie tego pierwszego to zła praktyka. Prawda?
#cpp
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bubuch: To prawda.

Przykładowo jak masz vector, to nie wiesz czy to jest boost::vector czy std::vector.
Wyłączasz też wtedy ADL w pewnym sensie.

Ogólnie przyjmuje się, że "using namespace" jeżeli jest użyty z lenistwa to raczej jest to zła praktyka.
Wyjątkiem od tej reguły może być prosty program na 100 linii, gdzie masz same couty.
  • Odpowiedz
#programowanie #cpp
Mam problem z gtestem.
Jest postawiony mock ogólny wcześniej w teście, że coś ma się nie zadziać.
EXPECTCALL(mockObj, method(, )).Times(0);

Dalej w scenariuszu testu
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Malkof: Czemu służy padding w strukturach? Temu by spełnić wymagania alignment dla poszczególnych memberow.
W twoim przykładzie te wymagania są już spelnione bo alignment requirement dla uint8t to 1 bajt więc może być na dowolnym adresie.

Możesz to sprawdzić przez 'alignof(uint8
t)'
  • Odpowiedz