Я пытаюсь заполнить вектор целыми числами, начиная с -1 и до отрицательного значения моего параметра размера. Например: если параметр равен 6, то я хочу, чтобы вектор имел 6 элементов, от -1 до -6. О, и если параметр размера меньше 1, я хочу вернуть пустой параметр.
Я получаю сообщение об ошибке «преобразование из int в нескалярный тип». Насколько мне известно, это хороший код, но, очевидно, я не могу понять это. Любая помощь приветствуется.
#include <iostream>
#include <vector>
int negativity(int size) {
std::vector<int> vect;
if (size < 1) {
return vect;
}
for (int i=-1; i > size; i--) {
vect.push_back(i);
}
return vect;
}
Тип возврата вашей функции int
, но вы возвращаетесь std::vector<int>
,
Это должно исправить ошибку компилятора.
#include <iostream>
#include <vector>
std::vector<int> negativity(int size) {
std::vector<int> vect;
if (size < 1) {
return vect;
}
for (int i=-1; i > size; i--) {
vect.push_back(i);
}
return vect;
}
/** other implementation;
- Usage of an argument to avoid duplication of copying object.
*/
size_t negativity(std::vector<int>& vResult, const unsigned int uiHowmany)
{
vResult.clear();
for(unsigned int i=1; i < uiHowmany; ++i)
{
vResult.push_back((-1)*i);
}
return vResult.size();
}