Покажи Публикации - vesok
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: 1 2 [3]
31  Програмиране / Общ форум / struct S { ... }; vector<S> ..... -: May 01, 2004, 08:42
>vesok mislq 4e samo za vtoria mem leak si prav

Така е. Sorry ;-)
32  Програмиране / Общ форум / struct S { ... }; vector<S> ..... -: Apr 30, 2004, 13:06
>..mesto masiv imam vector ! moje li ?

Може. При това е по-добре да свикнеш да ползваш вектори или списъци (std::list) отколкото масиви.


>std::vector<neshto> *v= new vector<neshto>(10);

това е вярно но непрактично. Като създаваш вектора така трябва да помниш да го delete-неш. Например savel е забравил да изтрие вектора и ако не беше main а друга функция щеше да си има хубае memory leak. Векторите не са големи структури (всъщност са с размер на 2 указателя и едно цяло число) и е по-добре да се създават като обикновени локални променливи - така те ще се саморазрушат когато не са нужни:

std::vector<neshto>v (10);


това ти създава вектор с 10 елемента които са инициализирани с конструктора по подразбиране. В случая твоята структура няма такъв конструктор така че всичките 10 елемента са неинициализирани. Това (10) ти спестява 10 пъти push_back().


>i ako moje kak se obrashtam kam elementite

Ако си дефинирал:

std::vector<neshto>v (10)

пишеш

v[0].element1 = 3;
v.element2 = 5;
или същото но ще прави проверка дали не си извън вектора:
v.at(0).element1 = 3;
v.at(i).element2 = 5;


--
Ако си дефинирал:

std::vector<neshto *>v (10)

пишеш

v[0]->element1 = 3;
v->element2 = 5;
или същото но ще прави проверка дали не си извън вектора:
v.at(0)->element1 = 3;
v.at(i)->element2 = 5;

--
Ако си дефинирал:

std::vector<neshto> *v = new vector<neshto>(10);

пишеш

(*v)[0].element1 = 3;
(*v).element2 = 5;
или същото но ще прави проверка дали не си извън вектора:
v->at(0).element1 = 3;
v->at(i).element2 = 5;


--
Ако си дефинирал:

std::vector<neshto *> *v = new vector<neshto *>(10);

пишеш

(*v)[0]->element1 = 3;
(*v)->element2 = 5;
или същото но ще прави проверка дали не си извън вектора:
v->at(0)->element1 = 3;
v->at(i)->element2 = 5;


>i pri vektor poprincip imame vector.push_back() etc.

Не е задължително - можеш с конструктора да си укажеш колко е голям вектора и след това просто да го ползваш без push_back(), както е в примерите по-горе.


>no ako imam elementi e iasno che nemoga dan apisha v.push_back()

Грешно. Ти можеж да си имаш елементи и с push_back() да си добавиш още към края. Затова векторите са по-добри от масивите :-)

> triia da mu okaja za element1 ili element2 da pusne .. ta kak stava tova ?!

Този въпрос нещо не го схванах.

> izobshto kak sedqt neshtata ako vektora e ot tip struktura

Нямаш вектор от тип структура, имаш вектор с елементи от тип структура. Надявам се че схващаш разликата.

И още един коментар по повод постинга на savel - почти винаги когато имаш vector<neshto *> е по-добре да ползваш list<neshto> - иначе лесно се забравя че освен да изтриеш елементи от вектора (v.erase()) трябва да изтриеш и самата структура (delete v) - това е и втория memory leak в кода на savel.
33  Linux секция за начинаещи / Настройка на хардуер / Help! След прекомпилация на кернел -: Apr 24, 2004, 11:53
Boot-параметри не могат да се въведат - човека си е направил lilo-то без таймаут и boot-prompt-а изобщо не му се показва!

gromeo, по-добре си монтирай диска за четене/запис (след като boot-неш knoppix) и тогава стартирай лило. Командата е:

mount -o rw,remount /dev/hda1
34  Нетехнически теми / Коментар / Welcome to Gmail -: Apr 23, 2004, 02:35
Това е малко "данайски дар", защото дори и да изтриеш съобщение google ще си го пази но няма да ти го показва.

Правят го за да анализират получени/изпратени пощи и от там да разберат от какво се интересуваш. Знаейки последното ще знаят какви реклами да ти изпращат - такива на каквито е най-вероятно да "клъвнеш".

Всичко това не е престъпно и сигурно не би пречило на много хора но аз предпочитам да го пропусна.
35  Linux секция за напреднали / Хардуерни и софтуерни проблеми / Малък скрипт -: Apr 19, 2004, 02:33
export VOL=`grep -m 1 -o [[:digit:]][[:digit:]]%`

Обърни внимание на обратните кавички - ` а не ' или "
36  Програмиране / Общ форум / C/C++ -: Apr 14, 2004, 10:23
Ако наистина си начинаещ по-добре не се захващай с цветовете на конзолата под C/C++. Тези езици нямат вградена поддръжка на цветове на конзола и ще трябва да учиш да ползваш библиотека от функции - напр. ncurses. Не съм сигурен че това е подходящо упражнение за начинаещ.

Ако просто искаш да си свършиш някаква работа - пиши директно на stdout, така програмите ти ще могат да участват във вериги от команди с пренасочване.

А ако много държиш да видиш нещо шаренко на екрана можеш да си генерираш .html документ и след това да стартираш броузер който да го покаже.
37  Linux секция за начинаещи / Настройка на хардуер / partition recovery -: Apr 06, 2004, 03:00
Пробвай gpart, мисля че го има в Knoppix.

http://www.stud.uni-hannover.de/user/76201/gpart/

Още информация има на http://staff.washington.edu/trav/linux/lost_partition.html
38  Linux секция за начинаещи / Настройка на програми / apt-get upgrade1 upgraded, 0 newly installed, 0 to -: Mar 31, 2004, 02:34
По някаква причина имаш файл /usr/X11R6/include/X11/Xft/Xft.h и dpkg отказва да запише друг файл с това име.

Ако файла ти е инсталиран от .deb пакет (`dpkg -S Xft.h` ще ти каже кой пакет го е инсталирал) то деинсталирай въпросния друг пакет първо.

По-вероятно е да си инсталирал въпросния файл без да ползваш dpkg/apt-get - например от сорс .tar.gz файл. В такъв случай е хубаво да разбереш как точно този файл се е появил там и да го деинсталираш - както него, така и останалите файлове инсталирани заедно с него. Тогава `apt-get -f install ` трябва да свърши работа.

Ползване на --force-yes е игра с огъня и те съветвам да не го правиш. Системата ти и без това не изглежда добре, като "насилиш" apt-get съвсем ще я замажеш. Може да го позваш като последно средство преди форматиране на HDD!
39  Linux секция за начинаещи / Настройка на програми / Debian & Xfce 4 -: Nov 01, 2003, 12:02
Sorry za kirilitcata.
I az predi malko se boreh sus sushtia problem. Iavno avtorite na xfce4 polzvat gdm vmesto kdm...

Instrukcii:
Control Center - System Administration - Login Manager
(shte ti triabva root parola)
Tab "sessions", v dolnia desen ugul imash "Available types". default & failsafe sa sistemni - ne gi pipaj, ostanalite sa shell scriptove ili programi koito triabva da se izpulniat pri logon i do koito triabva da ima PATH.

Az umah xfwm4 (maj niakoj ot deb paketite go dobavi) no tova ne e korektno. Iztrij go, v poleto "new type" vyvedi razbirameo ime (Xfce4), click Add New i click OK.

Sled tova otvori konzolata:

cd /usr/bin
ln - s /etc/gdm/Sessions/Xfce4 Xfce4

(Poslednoto Xfce4 e razbiraemoto ime ot po-gore)

Log off, Log-on i triabva da e OK.

Vesselin
Страници: 1 2 [3]