私はテンプレートを初めて使用しています。何かを行うためにテンプレートを使用する必要がありますが、テンプレート機能を呼び出す方法はわかりません。それはおそらく単純な単純ですが、私はそれを見ることはできません。テンプレートの署名の問題
template<class It, class T>
// iterator and value_type of *It
void Calc(It begin, It end, std::pair<int, int> &out)
{
std::vector<It>::iterator iter;
std::map<int, int> StartMap;
std::map<int, int>::reverse_iterator rit;
int sum, start, stop, count;
start = stop = 1;
count = sum = 0;
for(iter = begin; iter != end; iter++)
{
sum += iter;
count++;
stop++;
if(sum <= 0)
{
// store original start
StartMap.insert(start, count);
// set new start position
start = stop;
}
}
// set iterator to highest value
rit = StartMap.rbegin();
start = rit->first;
stop = start + rit->second;
out.insert(start, stop);
}
しかし、私が2 std :: vector iteratorsをどのように呼び出すかはわかりません。 私はあなたがそれout
を与えたいので、この
void doSomething(std::vector<int>& stopsVec)
{
std::pair<int, int> out;
Calc<std::vector<int>::iterator, std::pair<int, int>>(stopsVec.begin(), stopsVec.end(), &out);
}
あなたはテンプレートパラメータ 'T'をまったく使用していないようです。 – Tim
あなたの問題がその関数を呼び出すと思われるエラーは何ですか? – JaredC