Есть функция, принимающая итератор и записывающая с помощью него в контейнер несколько байт:
template <typename T> void Put(T i)
{
*i = 0x07;
++i;
*i = 0x6F;
++i;
//и так далее
}
как это сделать по-человечески, например, обернув передаваемый контейнер (или итератор) в std::ostream?
Спасибо
Здравствуйте, Wody,
так можно
typedef vector<int>::iterator VecIter;
template <typename T, typename ValType>
void Put(T i, ValType value)
{
*i = value;
i++;
}
int main() {
vector<int> vec;
vec.push_back(0);
VecIter iter = vec.begin();
//for_each (vec.begin(), vec.end(), myfunction);
Put<VecIter>(iter, 0x07);
cout << vec[0];
return 0;
}
Здравствуйте, Wody, Вы писали:
W>Есть функция, принимающая итератор и записывающая с помощью него в контейнер несколько байт:
W>template <typename T> void Put(T i)
W>{
*i++ = 0x07;
*i++ = 0x6F;
W> //и так далее
W>}
W>