Yonggoo wrote:
Does std c++ have iterator?
Yes.
class LineItem
{
public:
LineItem() {}
~LineItem() {}
void setLength(const int length) { \_Length = length; }
int getLength() const { return \_Length; }
void setNumbers(const std::vector<int>& numbers) { \_Numbers.assign(numbers.begin(), numbers.end()); }
std::vector<int> getNumbers() const { return \_Numbers; }
private:
int _Length;
std::vector<int> _Numbers;
};
std::ostream& operator<<(std::ostream& os, const LineItem& s)
{
os << s.getLength() << "|";
const std::vector<int> numbers = s.getNumbers();
std::copy(numbers.begin(), numbers.end(), std::ostream\_iterator<int>(os, " "));
os << std::endl;
return os;
}
std::istream& operator>>(std::istream& is, LineItem& s)
{
int length;
is >> length;
std::string sNumbers = "";
std::getline(is, sNumbers);
std::stringstream ss(sNumbers);
std::vector<int> numbers;
std::copy(std::istream\_iterator<int>(ss), std::istream\_iterator<<int>(), std::back\_inserter(numbers));
s.setLength(length);
s.setNumbers(numbers);
return is;
}
void main( void )
{
std::ifstream fin;
std::vector<LineItem> lines;
fin.open("c:\\\\input.txt");
std::copy(std::istream\_iterator<LineItem>(fin), std::istream\_iterator<LineItem>(), std::back\_inserter(lines));
fin.close();
std::copy(lines.begin(), lines.end(), std::ostream\_iterator<LineItem>(std::cout, "\\n"));
}
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne