template <class T> vector <T> __fascall operator + (const vector <T> &First, const vector <T> &Other) const
{
SumVector <T> Result;
int Max_Size = (First.size() >= Other.size()) ? First.size() : Other.size();
Result.resize (Max_Size);
for (int i = First.size(); i >=0 ;i--)
Result = First.;
for (int i = Other.size(); i >=0 ;i--)
Result += Other ;
return Result;
}
};
Как сложить вектора?
vector<double> a
vector<double> b
Нужно к каждому значению a прибавить значение b
Можно, конечно, пустить цикл. А есть ли какая-нибудь функция STL библиотеки для упрощения этого дела и для большей наглядности?
Нужно переопределить глобальный оператор + для векторов.
И еще заодно 1 вопрос.
for( int i = mTestColors.size(); --i >= 0; )
на эту строчку компиллятор дает warning:
warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
Можно как-нибудь поставить в опциях, чтобы таких вот сообщений при компилляции я не получал?
Код:
typedef unsigned int size_t
Что бы не появлялось варнинга нужно сделать
Код:
for (int i = (int) mTestColors.size (); --i >= 0; )
{
// anycode
}
{
// anycode
}
если честно невкупаю зачем при таком условии использовать for, помоемому будет нагляднее
Код:
int i = (int) mTestColors.size ();
while (-- i)
{
// anycode
}
while (-- i)
{
// anycode
}
Поэтому я бы просто сделал функцию, назвал бы её elemByElemAddition или appendElemByElem. Сделал бы её универсальной для стандартных контейнеров? Где в цикле через итератор перебрал бы значения.