IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Возможность импорта библиотек.
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


В написании программы я воспользовался благами Boost'a, а точнее его vector ,но в институте меня образовали,сказав, что программу придется компилировать, и конешно же там boost'a нету.Желания переписывать практически полностью нету,если ли какие нибудь средства или возможности выбрать необходимый мне контент? Чтобы принеся проект я его смог там скомпилировать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
Желания переписывать практически полностью нету
, но придется, если хочешь сдать программу... boost должен быть установлен для того, чтобы иметь возможность его использовать в проекте.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Тогда возникают вопросы,как лучше реализовывать возможности прибавления числа к вектору ,сколярное произведение векторов, копирование векторов.
Например, у меня есть

typedef double (*Function)(vector<double>) ;

double FindMin(Function F, vector <double> s, vector<double> p)
{
const double EPS = 1e-8;
double a = 0;
double b = 1e5;
double x0 = a + 0.5 * (3 - sqrt(5.0)) * (b - a);
double x1 = b - x0 + a;

while (abs(b - a) > EPS)
{
if (F(s + x0 * p) < F(s + x1 * p) ) b = x1;
else a = x0;

x1 = x0;
x0 = b + a - x1;
}
return (a + b)/2;
}


Воззикает вопрос, как поступать с if (F(s + x0 * p) < F(s + x1 * p) ),влоб сначала сложить 2 вектора,а потом подставить результирующий вектор?Или можно как-нибудь по другому.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Стесняюсь спросить, а при чем тут boost? Это ж STL. Что, его тоже нет там, где будут компилироваться программы? Тогда я бы делал на чистом С, вообще без плюсов. Обычно там, где "нет STL" подразумевается такое старьё, что мама не горюй. Типа Досовского Turbo C++ 1992 года выпуска...

Что за компилятор - неизвестно? Любой мало-мальски современный уже поддерживает STL.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Может борландовский компилятор и поддерживает,но если использовать VS #include <vector> то в строке if (F(s + x0 * p) < F(s + x1 * p) ) мне пишет Error С2677: binary '*' : no global operator found which takes type 'std::vector<_Ty>' (or there is no acceptable conversion) Ну и собственно это все основные ошибки.

Boost при том,что в нем подключил и работаешь,а сейчас я так понимаю придется писать копирование, умножение вектора на число и тд.По крайней мере в описании Vector я их не нашел.Я прикрасно понимаю? что несложно описать функции,которые в лоб будут делать сложение,умножение, просто интересовало, есть ли какие нибудь более продвинутые методы в рамках STL.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 23:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name