Dynamiczna tablica struktur vs dynamiczne tablice zwykłych zmiennych przy rozwiązywaniu problemu z plecakiem algorytmem aproksymacyjnym

Wygodniej mi będzie ze strukturami, ale wydaje mi się, że dla pamięci lżejsze będą standardowe zmienne

#cpp #programowanie

Co robić?

  • tablice struktur 64.3% (9)
  • tablice standardowych zmiennych 35.7% (5)

Oddanych głosów: 14

  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@BotRekrutacyjny: Jesli chodzi o wydajnosc, to czesto jest tak, ze bardziej oplaci sie zaalokowac jeden obszar pamieci i go nie zwalniac do konca potrzeb (jesli choc kawalek jest uzywany), jesli jest oczywiscie wystarczajaco duzo pamieci. sama alokacja zabiera czas a czeste alokacje i zwalnianie moze fragmentowac dodadkowo pamiec. Czesto to wykorzystuje sie przy programowaniu embeded, ze aby zwiekszyc wydajnosc oblicza sie ile pamieci bedzie potrzebne w jakims dluzszym odcinku pracy,
  • Odpowiedz
@BotRekrutacyjny: przy strukturach warto wspomnieć o tzw. data structure alignment (czyli np. "dorównywanie" adresów zmiennych tak, aby procesor miał do nich "łatwiejszy" dostęp lub pakowanie ich). Oczywiście różne procesory trochę inaczej rozprawiają się z uzyskiwaniem dostępu do danych w pamięci, dlatego czasowe rezultaty przy pewnych ustawieniach mogą być różne w zależności od platformy, na której pracujesz.
  • Odpowiedz
Wiem, że temat poruszany wielokrotnie ale to właśnie jest problemem, ilość wątków na ten temat, wiele sprzecznych lub/i nieaktualnych informacji.
Jaka książka do nauki C++ w 2019?
Na studiach mi polecano Symfonia C++ i Thinking in C++ ale po researchu niekoniecznie jestem do nich przekonany
(przede wszystkim ten wpis, ale on sam jak i książki w nim polecane są dosyć stare).
Fajnie by było, żeby była po polsku, niby coś umiem po
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

1. W jaki sposób uporządkować istniejący już projekt w Visual Studio?
Konkretnie chodzi mi o to jak powinna wyglądać "drzewko" projektu:

zakładam coś takiego:

folderprojekt\nazwaprojektu
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć,chce stworzyć turową grę w statki i nie wiem jaki silnik będzie odpowiedni.Ogarniam #java i #cpp ale nauka nowego języka raczej nie będzie zbytnim problemem.Chce mieć możliwość dodania mgły wojny dla 2 graczy,widok z góry z cieniami statków, to chyba wszystko.Jak ktoś ma pomysł jaki silnik może się nadać to proszę o polecenie,dzięki :)

#programowanie #gamedev
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej mirki, Czy jest szkolenie które możecie śmialo polecić które trwa przynajmniej 3 dni, ale jest porządne i nastawione na praktyke z tematu:

Unit testy, szczegółowo pojęte pisanie Testów w C++ z użycie, CPPUNIT, Google mock, Google test frameworków, testowanie "legacy" itp.

takie po którym czlowiek który jakieś tam pojęcie ma ale ciągle po omacku pisze testy, taka troche rzezba, po szkoleniu bedzie sprawnie i samodzielnie takie testy pisał.

Proszę
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CppPolska:

Proces optymalizacji możemy wyobrazić sobie jako zestaw wielu funkcji, które kolejno wykonywane są na drzewach składniowych. Ważną zasadą każdej z nich jest to, aby zachowanie kodu było niezmienne (tj. przykładowo, jeżeli chcemy zwrócić w funkcji wartość -47, to kompilator nie może zadecydować, że będzie to wartość 21).
  • Odpowiedz
@Kopytko1: Zależy od tego czy chcesz mieć wskaźnik czy nie. Wskaźniki chce się z kilku powodów, np. żeby obiekt przeżył zakres w którym został zadeklarowny lub żeby nie kopiować go podczas przekazywania jako parametr

@plastkik: Przecież obiekty deklarowane jako zwykłe zmienne tez są zwalniane w trakcie działania programu xD
  • Odpowiedz
#programowanie #programista15k #cpp
BLOG PROGRAMISTYCZNY DLA HAKERÓW nr 58/100:
Zaawansowane konstrukcje języka: if

Dziś wpis dla nieco bardziej zaawansowanych hakerów. W naszych pierwszych programach wyświetlaliśmy na ekranie różne komunikaty. Jednak czy wiedzieliście, że możemy sterować przepływem sterowania w programie?

Co
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#pracbaza Jestem programistą z 10-letnim doświadczeniem po studiach, języki:
C++ w stopniu bardzo dobrym (konstrukcje int main() / return opanowane, obecnie jestem w trakcie poznawania zmiennych)
Python w stopniu dobrym (pisałem w nim pracę doktorską z geodezji (map))
CSS / HTML 4.01 strict DTD umiarkowany poziom (nie umiem jeszcze , ale mam w małym palcu)

Na jakie stanowisko powinienem aplikować i ile mogę oczekiwać? Zależy mi na rozwoju, jakieś nowe
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej bawię się w GUI QT i mam taką sytuację z pytankiem!

Posiadam dwa buttony (ui.addButton/ui.sumButton), chciałbym aby obydwa kierowały do tej samej funkcji getAndshowResult() jednakże z tym, aby każde z nich dodawało "od siebie" argument najlepiej znak '+'/'-' i na podstawie tego znaku wywoływana była dalsza część funkcji. Jednakże żaden ze sposobów mi nie zadziałał.

Pomyślałem o takim rozwiązaniu -> https://pastebin.com/Uq1vZXRg ale NIE działa (cptn Obvious), jakieś pomysły?

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

@Metoksyfenidyna9: Zazwyczaj nie musisz tego robić, bo się automatycznie usuwać, gdy jeden z obiektów połączenia się usunie. Tutaj ui->sumButton raczej nie będzie obsługiwać wciśnięć dłużej niż życie this, czyli zgaduje, że twojego okna.
Jednak gdy masz w lambdzie jakiś inny obiekt, który zostanie zniszczony, to trzeba usunać też połączenie:

QMetaObject::Connection connection = connect(ui.sumButton, &QPushButton::clicked,

                                       [my_qobject]()
  • Odpowiedz
Mirki zrobiłem taką klase https://pastebin.com/GCDxCB50 do której mam dodać metodę Array* clone(); – wykonuje głęboką kopię naszego obiektu przy pomocy dynamicznej allokacji. W jaki sposób to osiągnąć próbowałem

Array* copy= new Array(size_of_tab);
i wtedy przepisać dane ale niestety to nie działa ( ͡° ʖ̯ ͡°)
i czy dobrze mam wykonany destruktor?
#programowanie #cplusplus #cpp
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@OstryKepucz: jeśli klasa ma w sobie tablicę alokowaną dynamicznie, to dlaczego jej rozmiar jest stały? To bez sensu.

Metoda clone to właściwie konstruktor kopiujący, a w przypadku składników - danych wskaźników różnica polega na tym, że wskaźnik nie może bezmyślnie pokazać na to samo miejsce w pamięci, co nie? Bo zonk będzie. Tworzysz więc nowy obszar w pamięci (jak w konstruktorze), na który pokazuje nowy wskaźnik i dopiero wtedy przepisujesz
  • Odpowiedz
Szanowne mireczki, szukam kogoś kto może ma po taniości oddać książkę Język C++. Szkoła programowania. Wydanie V lub VI (Stephen Prata) albo może użyczyć w pdf'ie. Jestem nawet w stanie zapłacić pieniądze (desperacja ( ͡° ͜ʖ ͡°) ), bądź zestaw dobrych piwek czy inną wódeczkę, kwestia do dogadania.

#programowanie #nauka #ksiazki #cpp #warszawa
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cpp17: Czasem jeszcze uzywam lambd do "immediately invoked function expression" zeby inicjalizowac zmienne ktore chce zeby byly const, a sa nietrywalne/dynamiczne w konstrukcji.

const std::string day = [](int d) -> string { if (d==0) return "Monday" else "Not monday,"; }();
  • Odpowiedz
Dzień dobry poniedziałek wszystkim! ( ͡° ͜ʖ ͡°) Mamy dla Was nowe #cppnews, czyli #nowinki z #programowanie w #jezykc i #cpp ( ͡º ͜ʖ͡º)

https://cpp-polska.pl/post/cppnews-57-1802-24022019-najciekawsze-propozycje-przed-spotkaniem-w-kona (。◕‿‿◕。)

W tym tygodniu znajdziecie linki do najbardziej interesujących propozycji przed spotkaniem komsji w Kona (które właśnie
C.....a - Dzień dobry poniedziałek wszystkim! ( ͡° ͜ʖ ͡°) Mamy dla Was nowe #cppnews,...

źródło: comment_6Lbr0mrCid0OFKBRukLReSpWU5QPO52u.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

konto usunięte via Wykop Mobilny (Android)
  • 0
Jak pewnie wiedzą śledzący prace Komitetu nad #cpp20, oprócz wielu naprawdę ciekawych i przydatnych zmian (Concepts, format) wprowadza również coś takiego jak spaceship operator <=>, o którym więcej np. tutaj:
tekst

Może mi ktoś z szanownych kolegów wytłumaczyć co to daje i po co jest? Jedyna sensowna odpowiedź, którą znalazłem, to że ten operator jest uogólnieniem wszystkich pozostałych (<, <= itp.), ale nie jest to dla mnie wystarczający powód
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@frogi16: Implementujesz jeden operator dla swojego typu i masz z głowy wszystkie inne - <, <=, >=, >, !=. W dodatku jedna implementacja zmniejsza ryzyko błędów, a te potrafią być bardzo paskudne. Dla przykładu, użycie w std::set czy std::map typu który nie ma prawidłowego zdefiniowanego weak ordering może prowadzić do zaskakujących błędów.
  • Odpowiedz