2016-09-14 3 views
-1

В настоящее время я изучаю C++ самостоятельно, и мне трудно получить параметры для моей функции.Домашнее задание: Параметры для функции C++

вопрос и мой скриншот:

My Screenshot

Мой код до сих пор:

int countInRange(Vector<int> array, int min, int max){ 
    /* 
     Actual code goes here...... 
    */ 
    return 0; 
} 

Сейчас компилятор не принимает Vector<int> array, и бросает мне эту ошибку:

no match for 'operator=' (operand types are 'Vector<int>' and '<brace-enclosed initializer list>') param0 = {28, 1, 17, 4, 41, 9, 59, 8, 31, 30, 25};

Я понимаю, что этот вопрос использует стандартную библиотеку Стэнфорда, но я не думаю, что это основная проблема.

Я хотел бы получить любую помощь по исправлению части Vector<int> array. Спасибо!

Спасибо за помощь, ребята! Я понимаю, что стандартная библиотека «станд :: вектор» может отличаться от библиотеки «Вектор» Стэнфорда с заглавной «V»:

http://stanford.edu/~stepp/cppdoc/Vector-class.html

Постараюсь предоставить больше информации, чтобы помочь каждому.

+2

'Вектор' должен быть' vector' (все маленькие буквы), если из 'std' –

+3

Не могли бы вы отобразить объявление param0? Я предполагаю, что это вектор , и поэтому назначение, которое вы пытаетесь сделать недействительным. – audio

+1

Добро пожаловать в переполнение стека. Отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve). –

ответ

3

«Основная проблема» - использование стандартной библиотеки Stanford, которая не определяет список инициализаторов конструктор для класса шаблона Vector.

Используйте, возможно, std::vector, у которого есть список инициализаторов конструктор.

0

Поскольку это домашнее задание, я не буду делать эту работу за вас, но я дам вам несколько направлений. Я уверен, вы понимаете; в конце дня вам нужно понять, что вы в конечном итоге доставляете.

Ошибка вашего компилятора заключается в том, что вы не можете инициализировать экземпляр Stanford Vector так, как вы пытались помещать туда цифры; такой путь невозможно, вам придется делать это по-другому. Итак,

param0 = {28, 1, 17, 4, 41, 9, 59, 8, 31, 30, 25}; //not possible 

как таковой, вам нужно будет использовать другие методы, чтобы получить ваше добавление к Стэнфордскому вектору. вы можете исследовать:

  • вектор-функции "добавить" и "push_back"

  • вектор метод initilization vector<t> name(values)

  • вектор-функция "вставить"

Or , как и другие, вы можете переключиться на std :: vector вместо Stanford Vector.Однако убедитесь, что это соответствует вашим требованиям к назначению.

Смежные вопросы