Wpis z mikrobloga

#cpp

MIrki taka sytuacja:

void funkcja()
{
vector wieersz;
vector > macierz(1, wiersz);

For()
{
switch()
{
case 0: macierz.resize(nowy_rozmiar, wiersz)

Czy to jest poprawnie(chcialbym zmienic rozmiar macierzy na stale)?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@that_ugly_dude: Generalnie umiem te rzeczy obslugiwac(to tylko slowa ale moge pokazac kody w ktorych robilem takie rzeczy), mi rozchodzi sie o to, ze musze w case 0 zmienic rozmiar, a w case 1 musze juz miecdostep do zmienionego rozmiaru... Zaczyna sie kombinowanie == zaczynaja sie bledy. Prowadzaca: "Ale po co pan sobie utrudnia? NIech pan zrobi takim gownianym sposobem jak ja, dzialajacym tylko w tym przypadku", a wykop: "idz sie
  • Odpowiedz
@wieczniezielony: trochę ma Twoja prowadząca rację odnośnie utrudniania. Kod ma być czytelny - nawet dla Ciebie po tygodniu może już coś być nieoczywiste.

switch sugeruje kilka przypadków dla określonych wartości liczbowych. Idealnie nadaje się dla enum-ów. Niespecjalnie sprawdza się w przypadku logicznym: puste-niepuste? Do tego powinieneś użyć zwykłego if-a.

Poza tym, w kodzie tworzysz wektor (albo wektor wektorów) i jawnie deklarujesz go jako pusty. Po co to sprawdzać
  • Odpowiedz
@that_ugly_dude: Dlatego dodaje dokumentacje, nawet do prostych algorytmow, oraz nie nazywam zmiennych x, y, z( ͡° ͜ʖ ͡°)

No tak zgadza sie i dokladnie tak robie, dostaje dane X jako pierwsze i przydzielam do zmiennych, reszta to dane Y i przydzielam do wektora czyli case nadaje sie idealnie. Dla if-a musialbym dodac kolejna zmienna ktora sprawdzalaby ktory raz pobieram dane z pliku.

Nie robilem nic z
  • Odpowiedz