2015-10-19 3 views
0

Я немного новичок в программировании шаблонов на 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) 

Заранее за помощь.

ответ

0

Похоже precedingElement обновление следует читать precedingElement = input[i] (это типа элемента, а не сборник)

+0

Вы правы, моя ошибка. Я копирую и вставляю его из своего кода, а тип T также индексируется. Это не помогает мне и жаль осложнений. – thewyliestcoyote

+0

Проблема заключается в том, что 'vector' сам по себе не является типом, а является шаблоном, и вы должны объявить его как параметр шаблона шаблона:' template