Language: C++

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <stdlib.h>  // atoi

using namespace std;

void get_values(vector<int> &values, int &v1, int &v2){
	v2 = values.back();
	values.pop_back();

	v1 = values.back();
	values.pop_back();
}

int main(){
	// Get Input
	string temp;
	getline(cin, temp);
	istringstream iss(temp);
	vector<string> calc{istream_iterator<string>{iss},
                      istream_iterator<string>{}};

	vector<int> values;
	int v1, v2, val;
	for(int i=0; i<calc.size(); ++i){
		temp = calc[i];
		if(temp == "+"){
			get_values(values, v1, v2);
			val = v1 + v2;
			values.push_back(val);
			continue;
		}	
		if(temp == "-"){
			get_values(values, v1, v2);
			val = v1 - v2;
			values.push_back(val);
			continue;
		}	
		if(temp == "*"){
			get_values(values, v1, v2);
			val = v1 * v2;
			values.push_back(val);
			continue;
		}	
		values.push_back(atoi(temp.c_str()));
	}
	cout << values[0] << endl;	
}


Compiler output:
a.cc: In function 'int main()':
a.cc:22:29: error: 'istream_iterator' was not declared in this scope
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                             ^~~~~~~~~~~~~~~~
a.cc:6:1: note: 'std::istream_iterator' is defined in header '<iterator>'; this is probably fixable by adding '#include <iterator>'
    5 | #include <stdlib.h>  // atoi
  +++ |+#include <iterator>
    6 | 
a.cc:22:52: error: expected primary-expression before '>' token
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                                                    ^
a.cc:22:53: error: expected primary-expression before '{' token
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                                                     ^
a.cc:22:53: error: expected '}' before '{' token
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                            ~                        ^
a.cc:22:53: error: no matching function for call to 'std::vector<std::__cxx11::basic_string<char> >::vector(<brace-enclosed initializer list>)'
In file included from /usr/include/c++/14/vector:66,
                 from a.cc:2:
/usr/include/c++/14/bits/stl_vector.h:707:9: note: candidate: 'template<class _InputIterator, class> std::vector<_Tp, _Alloc>::vector(_InputIterator, _InputIterator, const allocator_type&) [with <template-parameter-2-2> = _InputIterator; _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
  707 |         vector(_InputIterator __first, _InputIterator __last,
      |         ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:707:9: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:678:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; allocator_type = std::allocator<std::__cxx11::basic_string<char> >]'
  678 |       vector(initializer_list<value_type> __l,
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:678:7: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/14/bits/stl_vector.h:659:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, std::__type_identity_t<_Alloc>&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; std::__type_identity_t<_Alloc> = std::allocator<std::__cxx11::basic_string<char> >]'
  659 |       vector(vector&& __rv, const __type_identity_t<allocator_type>& __m)
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:659:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:640:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::false_type) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; allocator_type = std::allocator<std::__cxx11::basic_string<char> >; std::false_type = std::false_type]'
  640 |       vector(vector&& __rv, const allocator_type& __m, false_type)
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:640:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:635:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::true_type) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; allocator_type = std::allocator<std::__cxx11::basic_string<char> >; std::true_type = std::true_type]'
  635 |       vector(vector&& __rv, const allocator_type& __m, true_type) noexcept
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:635:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:624:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&, std::__type_identity_t<_Alloc>&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; std::__type_identity_t<_Alloc> = std::allocator<std::__cxx11::basic_string<char> >]'
  624 |       vector(const vector& __x, const __type_identity_t<allocator_type>& __a)
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:624:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:620:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
  620 |       vector(vector&&) noexcept = default;
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:620:7: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/14/bits/stl_vector.h:601:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
  601 |       vector(const vector& __x)
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:601:7: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/14/bits/stl_vector.h:569:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(size_type, const value_type&, const allocator_type&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; size_type = long unsigned int; value_type = std::__cxx11::basic_string<char>; allocator_type = std::allocator<std::__cxx11::basic_string<char> >]'
  569 |       vector(size_type __n, const value_type& __value,
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:569:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/14/bits/stl_vector.h:556:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; size_type = long unsigned int; allocator_type = std::allocator<std::__cxx11::basic_string<char> >]'
  556 |       vector(size_type __n, const allocator_type& __a = allocator_type())
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:556:7: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/14/bits/stl_vector.h:542:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; allocator_type = std::allocator<std::__cxx11::basic_string<char> >]'
  542 |       vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:542:7: note:   conversion of argument 1 would be ill-formed:
/usr/include/c++/14/bits/stl_vector.h:531:7: note: candidate: 'std::vector<_Tp, _Alloc>::vector() [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >]'
  531 |       vector() = default;
      |       ^~~~~~
/usr/include/c++/14/bits/stl_vector.h:531:7: note:   candidate expects 0 arguments, 1 provided
a.cc:22:53: error: expected ',' or ';' before '{' token
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                                                     ^
a.cc:22:58: error: expected primary-expression before ',' token
   22 |         vector<string> calc{istream_iterator<string>{iss},
      |                                                          ^
a.cc:23:46: error: expected primary-expression before '>' token
   23 |                       istream_iterator<string>{}};
      |                                              ^
a.cc:23:47: error: expected primary-expression before '{' token
   23 |                       istream_iterator<string>{}};
      |                                               ^
a.cc: At global scope:
a.cc:27:9: error: expected unqualified-id before 'for'
   27 |         for(int i=0; i<calc.size(); ++i){
      |         ^~~
a.cc:27:22: error: 'i' does not name a type
   27 |         for(int i=0; i<calc.size(); ++i){
      |                      ^
a.cc:27:37: error: expected unqualified-id before '++' token
   27 |         for(int i=0; i<calc.size(); ++i){
      |                                     ^~
a.cc:49:9: error: 'cout' does not name a type
   49 |         cout << values[0] << endl;
      |         ^~~~
a.cc:50:1: error: expected declaration before '}' token
   50 | }
      | ^