STL-27 Iterators in C++ STL

Iterators in C++ STL

Turn to this article for help if you have some problems with what is iterators in C++.

Iterators are used to point at the memory addresses of STL containers. They are primarily used in sequence of numbers, characters etc. They reduce the complexity and execution time of program.

Operations of iterators:

  1. begin():- This function is used to return the beginning position of the container.

  2. end():- This function is used to return the after end position of the container.

// C++ code to demonstrate the working of
// iterator, begin() and end()
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main() {
	vector<int> ar = { 1, 2, 3, 4, 5 };
	
	// Declaring iterator to a vector
	vector<int>::iterator ptr;
	
	// Displaying vector elements using begin() and end()
	cout << "The vector elements are : ";
	for (ptr = ar.begin(); ptr < ar.end(); ptr++)
		cout << *ptr << " ";
	
	return 0;	
}

Output:

The vector elements are : 1 2 3 4 5 
  1. advance() :- This function is used to increment the iterator position till the specified number mentioned in its arguments.
// C++ code to demonstrate the working of
// advance()
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main() {
	vector<int> ar = { 1, 2, 3, 4, 5 };
	
	// Declaring iterator to a vector
	vector<int>::iterator ptr = ar.begin();
	
	// Using advance() to increment iterator position
	// points to 4
	advance(ptr, 3);
	
	// Displaying iterator position
	cout << "The position of iterator after advancing is : ";
	cout << *ptr << " ";
	
	return 0;
	
}

Output:

The position of iterator after advancing is : 4 
  1. next():- This function returns the new iterator that the iterator would point after advancing the positions mentioned in its arguments.

  2. prev():- This function returns the new iterator that the iterator would point after decrementing the positions mentioned in its arguments.

// C++ code to demonstrate the working of
// next() and prev()
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main() {
	vector<int> ar = { 1, 2, 3, 4, 5 };
	
	// Declaring iterators to a vector
	vector<int>::iterator ptr = ar.begin();
	vector<int>::iterator ftr = ar.end();
	
	
	// Using next() to return new iterator
	// points to 4
	auto it = next(ptr, 3);
	
	// Using prev() to return new iterator
	// points to 3
	auto it1 = prev(ftr, 3);
	
	// Displaying iterator position
	cout << "The position of new iterator using next() is : ";
	cout << *it << " ";
	cout << endl;
	
	// Displaying iterator position
	cout << "The position of new iterator using prev() is : ";
	cout << *it1 << " ";
	cout << endl;
	
	return 0;
}

Output:

The position of new iterator using next() is : 4 
The position of new iterator using prev()  is : 3 
  1. inserter():- This function is used to insert the elements at any position in the container. It accepts 2 arguments, the container and iterator to position where the elements have to be inserted.
// C++ code to demonstrate the working of
// inserter()
#include<iostream>
#include<iterator> // for iterators
#include<vector> // for vectors
using namespace std;
int main() {
	vector<int> ar = { 1, 2, 3, 4, 5 };
	vector<int> ar1 = {10, 20, 30};
	
	// Declaring iterator to a vector
	vector<int>::iterator ptr = ar.begin();
	
	// Using advance to set position
	advance(ptr, 3);
	
	// copying 1 vector elements in other using inserter()
	// inserts ar1 after 3rd position in ar
	copy(ar1.begin(), ar1.end(), inserter(ar,ptr));
	
	// Displaying new vector elements
	cout << "The new vector after inserting elements is : ";
	for (int &x : ar)
		cout << x << " ";
	
	return 0;	
}

Output:

The new vector after inserting elements is : 1 2 3 10 20 30 4 5 

More about c++ STL, turn to this page.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值