Я немного новичок в программировании шаблонов на C++ и застрял. Я пытаюсь написать фрагмент кода, чтобы перебрать элементы в контейнере и типе типа T. То, что у меня есть, явно неверно, но я думаю, что нужно передумать.Зацикливание контейнера в качестве шаблона
template <typename Container, typename T >
Container<T> MyFunction(Container<T> input)
{
T precedingElement = input[0];
Container<T> output = input;
for(int i=1; i<input.size(); i++)
{
// Do some work on element in the container
// Now update precedingElement
precedingElement = input[i];
}
return output;
}
// Example
vector<float> a = [0, 1, 2, 3, 4, 5 ...];
vector<float> b = MyFunction(a);
// Another example
list<MyType> c = [object1, object2, ... ];
list<MyType> d = MyFunction(c)
Заранее за помощь.
Вы правы, моя ошибка. Я копирую и вставляю его из своего кода, а тип T также индексируется. Это не помогает мне и жаль осложнений. – thewyliestcoyote
Проблема заключается в том, что 'vector' сам по себе не является типом, а является шаблоном, и вы должны объявить его как параметр шаблона шаблона:' template Контейнер, класс T> ' – petyanca
Можете ли вы привести пример? Я не уверен, что я понимаю, спасибо – thewyliestcoyote