Std :: inserter not working

I am writing code in which the set_intersection function is used in one of the files, and the last parameter of this function should be an insert. But when I compile the code, I see the following errors:

error C2039: 'inserter' : is not a member of 'std' error C2873: 'inserter' : symbol cannot be used in a using-declaration error C3861: 'inserter': identifier not found 

Below is the code in the file that uses the set_intersection function

 #include "Query.h" #include "TextQuery.h" #include <set> #include <algorithm> #include <iostream> using std::set; using std::ostream; using std::inserter; using std::set_intersection; // returns intersection of its operands' result sets set<TextQuery::line_no> AndQuery::eval(const TextQuery& file) const { // virtual calls through the Query handle to get result sets for the operands set<line_no> left = lhs.eval(file), right = rhs.eval(file); set<line_no> ret_lines; // destination to hold results // writes intersection of two ranges to a destination iterator // destination iterator in this call adds elements to ret set_intersection(left.begin(), left.end(), right.begin(), right.end(), inserter(ret_lines, ret_lines.begin())); return ret_lines; } 
+4
source share
2 answers

You need to include the <iterator> header.

+13
source

You forgot #include <iterator> .

+8
source

Source: https://habr.com/ru/post/1411942/


All Articles