How to find first and second element with specific value in a list and print all the element between in c++

2 Answers

0 votes
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>

using std::list;
using std::cout;
using std::endl;

int main()
{
	list<int> lst = { 3, 8, 6, 9, 7, 6, 2 };

	list<int>::iterator pos1;
	pos1 = find(lst.begin(), lst.end(), 6);

	list<int>::iterator pos2;
	if (pos1 != lst.end())
		pos2 = find(++pos1, lst.end(), 6);

	if (pos1 != lst.end() && pos2 != lst.end()) 
		copy(--pos1, ++pos2, std::ostream_iterator<int>(cout, " "));
		
	cout << endl;

	return 0;
}


/*
run:

6 9 7 6

*/

 



answered Jan 31, 2018 by avibootz
0 votes
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>

using std::list;
using std::cout;
using std::endl;

int main()
{
	list<int> lst = { 3, 8, 6, 9, 7, 6, 2 };

	list<int>::iterator pos1;
	pos1 = find(lst.begin(), lst.end(), 6);

	list<int>::iterator pos2;
	if (pos1 != lst.end())
		pos2 = find(++pos1, lst.end(), 6);

	if (pos1 != lst.end() && pos2 != lst.end()) 
		copy(pos1, pos2, std::ostream_iterator<int>(cout, " "));
		
	cout << endl;

	return 0;
}


/*
run:

9 7

*/

 



answered Jan 31, 2018 by avibootz
...