У меня есть ввод:
1 a
2 b
..
Я хотел бы вставить их в вектор пар с функцией копирования, например:
#include <vector>
#include <iterator>
#include <algorithm>
#include <iostream>
int main(void) {
std::vector<std::pair<int, char>> v;
std::copy(std::istream_iterator<std::pair<int, char>>(std::cin), std::istream_iterator<std::pair<int, char>>(), std::back_inserter(v));
for(auto pair: v)
std::cout << pair.first << std::endl;
return 0;
}
Однако это не будет компилироваться: error: no match for 'operator>>'
, так как, вероятно, требуется перегрузка оператора.
Означает ли это, что мне придется создать свой собственный класс, который наследуется от std::vector
, а затем перегрузить оператор?
Я хотел бы избежать использования своего собственного класса вместо стандартного векторного класса.