STL iterators are inherently sequential in nature because each iterator defines a single cursor of traversal and update. This is inadequate for parallel programming. We can define per-thread iterators based upon the strategy used for accessing and traversing the iterator space by the threads taking part in a data parallel operation.