 |
|

17.09.2008, 15:22
|
|
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
С нами:
10540906
Репутация:
62
|
|
Деструктор вызывать нельзя ни в каком случае.
Если хочешь освободить объекты - то просто сделай так. чтобы они не нужны были твоей программе - и Gc удалит их сам.
Верно, извиняюсь, глупость сморозил. Не имел под рукой компилятора. Действительно, студийный компилер даже слова delete не знает. А раз его нет - значит, оно не нужно.
|
|
|

17.09.2008, 17:38
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
С нами:
9332069
Репутация:
92
|
|
Сообщение от nerezus
Код:
#include <vector>
#include <string>
#include <windows.h>
using namespace std;
vector<string> glob(const char* path) {
vector<string> v;
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
string s;
hFind = FindFirstFile(path, &FindFileData);
do {
s = string(FindFileData.cFileName);
if (s != "." && s != "..") {
v.push_back(s);
}
} while (FindNextFile(hFind, &FindFileData));
return v;
}
Крайне медленная функция. я бы брал ссылку на вектор, все равно его объявит вышестоящая функция. А так еще и конструктор копирования вызывается.
Последний раз редактировалось 4p3; 17.09.2008 в 17:54..
|
|
|

18.09.2008, 00:21
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
Как по мне - то разница в пару процентов несущественна, ведь все равно нагрузка на ФС будет основная.
|
|
|

18.09.2008, 10:10
|
|
Новичок
Регистрация: 12.07.2008
Сообщений: 14
С нами:
9384791
Репутация:
0
|
|
Возникла проблема. Пишу на С++ Builder'e. Хотел сделать свою прогу более удобной, добавил объект MainMenu и перенес функции нажатия соотв. клавишь туда. Однако после переноса (если просто через Button'ы меню программы делать, все работает на Ура) одна кнопка после нажатия стала перекрашивать окно, т.е. оно становится каким-то нетаким, заголовок программы пропадает, кнопки (свернуть,развернуть и закрыть в заголовке) тоже, поле ввода текста на половину окрашивается черным(до того места до которого есть текст). Если нажать на заголовок программы то она закрывается. Ошибок не выдает. Повторюсь что если через Button обычый без MainMenu то все нормально (даже через маинменю код выполняет, но окно программы портит и нечего не видно толком)
|
|
|

18.09.2008, 10:22
|
|
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
С нами:
10395573
Репутация:
94
|
|
Сообщение от NC22
Возникла проблема. Пишу на С++ Builder'e. Хотел сделать свою прогу более удобной, добавил объект MainMenu и перенес функции нажатия соотв. клавишь туда. Однако после переноса (если просто через Button'ы меню программы делать, все работает на Ура) одна кнопка после нажатия стала перекрашивать окно, т.е. оно становится каким-то нетаким, заголовок программы пропадает, кнопки (свернуть,развернуть и закрыть в заголовке) тоже, поле ввода текста на половину окрашивается черным(до того места до которого есть текст). Если нажать на заголовок программы то она закрывается. Ошибок не выдает. Повторюсь что если через Button обычый без MainMenu то все нормально (даже через маинменю код выполняет, но окно программы портит и нечего не видно толком)
было бы замечательно если бы ты код выложил, а лучше весь проект через файло обменник.
з.ы. да и бросай ты это гнилое дело писать в билдере на с++
|
|
|

18.09.2008, 12:01
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
з.ы. да и бросай ты это гнилое дело писать в билдере на с++
А ты подскажешь, как в Vc юзать Vcl? ))))
ак по мне - то разница в пару процентов несущественна, ведь все равно нагрузка на ФС будет основная.
Но все равно по указателю получше будет, тут ты прав, но причина твоя явно надумана)
|
|
|

18.09.2008, 12:30
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
С нами:
9332069
Репутация:
92
|
|
Сообщение от nerezus
Но все равно по указателю получше будет, тут ты прав, но причина твоя явно надумана)
Ты сам себе ответил?
Ладно, ближе к делу. Просто возвращение целого вектора из функции довольно редкий стиль. Реально юзер не заметит этого, так как даже при худшем случае в 10к файлов мы лишний раз скопируем килобайт 100(10 символов на все про все). Для сегодняшнего дня это пустяки.
Хотя эту функцию можно еще ускорить, если использовать уникод-вариант.
Оптимизация - корень всех зол, но не стоит о ней забывать.
|
|
|

18.09.2008, 12:38
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
Хотя эту функцию можно еще ускорить, если использовать уникод-вариант.
Я ее просто с AnsiString перевел, в билдере вообще с уникодом жопа )
Оптимизация - корень всех зол, но не стоит о ней забывать.
Почитай, тебе полезно будет: http://rsdn.ru/article/philosophy/Optimization.xml
Краткий смысл: оптимизировать нужно только критические места.
|
|
|

18.09.2008, 12:46
|
|
Новичок
Регистрация: 12.07.2008
Сообщений: 14
С нами:
9384791
Репутация:
0
|
|
было бы замечательно если бы ты код выложил, а лучше весь проект через файло обменник.
Ок. Надеюсь на народе пойдет (http://narod.ru/disk/2665777000/prog_src.rar.html)? Ну если надо еще залью, только скажи сам куда. В архиве Исходники и готовый билд. Сам посмотришь, на кнопке и на др. кнопке в Меню одно и тоже действие на OnClick. Не суди строго за код, учился билдеру сам, писал сам не чего не принемая за базу. В уневерситете, вот в этом году поступил, будем изучать Delphi уже профессионально, но хотелось бы конечно MVS освоить, ну да ладно...не судьба.
Так же в архиве тестовый файл примерMTADMвSAMP.map . Загружешь его через программу (Файл->Открыть...) далее Конвертировать в...->MTA DM в SAMP или просто окне программы кнопка "Через простую кнопку все ОК".
|
|
|

18.09.2008, 18:17
|
|
Banned
Регистрация: 18.08.2008
Сообщений: 77
С нами:
9331021
Репутация:
447
|
|
Сообщение от nerezus
Я ее просто с AnsiString перевел, в билдере вообще с уникодом жопа )
Почитай, тебе полезно будет: http://rsdn.ru/article/philosophy/Optimization.xml
Краткий смысл: оптимизировать нужно только критические места.
да ! полезна
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|