Помощь - Поиск - Пользователи - Календарь
Полная версия: Возможность импорта библиотек.
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Общие вопросы разработки программ
Krjuger
В написании программы я воспользовался благами Boost'a, а точнее его vector ,но в институте меня образовали,сказав, что программу придется компилировать, и конешно же там boost'a нету.Желания переписывать практически полностью нету,если ли какие нибудь средства или возможности выбрать необходимый мне контент? Чтобы принеся проект я его смог там скомпилировать?
IUnknown
Цитата
Желания переписывать практически полностью нету
, но придется, если хочешь сдать программу... boost должен быть установлен для того, чтобы иметь возможность его использовать в проекте.
Krjuger
Тогда возникают вопросы,как лучше реализовывать возможности прибавления числа к вектору ,сколярное произведение векторов, копирование векторов.
Например, у меня есть

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

Что за компилятор - неизвестно? Любой мало-мальски современный уже поддерживает STL.
Krjuger
Может борландовский компилятор и поддерживает,но если использовать 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.