iterator

What's the use of yield break?

Can anyone see a use for the "yield break" statement that could not have been otherwise achieved by using "break" or "return". This statement seems to be utterly useless. What's more, without this statement, the "yield return X" statement could have been simplified to "yield X", which much more readable. What am I missing? ...

Best way to iterate through a container

What are the Advantages/Drawbacks of these two ways of iterating through a container / which one do you prefer and why: for (MyClass::iterator i = m.begin(), e = m.end() ; i != e ; i++) { // ... } or for (MyClass::iterator i = m.begin() ; i != m.end() ; i++) { // ... } Subsidiary question: i++ or ++i? Why? ...

Extract element from 2 vectors?

I have 2 vector of with one has vec1{e1,e2,e3,e4} and the other one with vec2 {e2,e4,e5,e7} How to effectively get three vector from above vectors such that 1.has elements that is available only in vec1 similarly 2 has only vec2 elements and 3.with common elements ...

What are the common misuse of using STL containers with iterators?

What are the common misuse of using STL containers with iterators? ...

Multiple ways to move through an Iterator

Hi, When I use an Iterator of Object I use a while loop (as written in every book learning Java, as Thinking in Java of Bruce Eckel): Iterator it=... while(it.hasNext()){ //... } but sometime i saw than instead somebody use the for loop: Iterator it=... for (Iterator it=...; it.hasNext();;){ //... } I dont' understand this...

Why can't I put an iterator in map?

I have a map defined like this std::map<some_key_type, std::string::iterator> mIteratorMap; And a huge string named "mHugeString". Then I walk trough the string collecting iterators like this: std::string::iterator It=mHugeString.begin(); std::string::iterator EndIt=mHugeString.end(); for(;It!=EndIt;++It){ ...defining a key element...

PHP RecursiveIteratorIterator and nested sets

Hi, I have a set of objects in a hierachy. There's a top "root" node and that has child nodes, which in turn have child nodes etc. I'm trying to save this structure into a DB using the nested set model, where each "side" of each node is numbered to define the hierarchy, as in: http://dev.mysql.com/tech-resources/articles/hierarchical...

Composite Pattern Iterator without recursion

Has anyone written or thought about writing an iterator for a composite (tree) structure without using recursion? If so can you share your ideas? Thks Edit: I was thinking of Java for lang. ...

Chaining IEnumerables in C#?

Is there a simple built-in way to take an ordered list of IEnumerables and return a single IEnumerable which yields, in order, all the elements in the first, then the second, and so on. I could certainly write my own, but I wanted to know whether there was already a way to accomplish this seemingly useful task before I do it. ...

Optimising Iterator Definitions

Hi all, This is a (hopefully) really simple question - I have been told recently that using C++ style initialisation is better than traditional (and more common) assignment. So this code: std::SomeSTLContainer::const_iterator it = container.begin(); std::SomeSTLContainer::const_iterator itEnd = container.end(); would be 'slower' or ...

Checking value exist in a std::map - C++

I know find method finds the supplied key in std::map and return an interator to the element. Is there anyway to find the value and get an iterator to the element? What I need to do is to check specified value exist in std::map. I have done this by looping all items in the map and comparing. But I wanted to know is there any better appro...

Efficiently iterate through all MATCHING keys in a hashmap?

I have a HashMap with millions of entries. Need to retrieve all entries whose keys match a specific set of criteria (in this case, each key is an object with two integer properties; I need to retrieve all keys where each of these integers fall within a specified range). What is the fastest, most efficient way to iterate through all suc...

Creating new Iterator from the results of another Iterator

Hi, I'm trying to get my head around using Iterators effectively in PHP 5, and without a lot of decent examples on the net, it's proving to be a little difficult. I'm trying to loop over a directory, and read all the (php) files within to search for defined classes. What I then want to do is have an associative array returned with the ...

Pair-wise iteration in C# or sliding window enumerator

If I have an IEnumerable like: string[] items = new string[] { "a", "b", "c", "d" }; I would like to loop thru all the pairs of consecutive items (sliding window of size 2). Which would be ("a","b"), ("b", "c"), ("c", "d") My solution was is this public static IEnumerable<Pair<T, T>> Pairs(IEnumerable<T> enumerable) { ...

Vectors, iterators and std::find

Is there any way to use different types of iterators in different vectors? Or, is there a function that returns the position of element in vector as an integer? std::vector<DWORD>::iterator it; // Iterator // monsterQueue is a <DWORD> vector it = std::find(bot.monsterQueue.begin(), bot.monsterQueue.end(), object); // Check do w...

How do I return hundreds of values from a C++ function?

In C++, whenever a function creates many (hundreds or thousands of) values, I used to have the caller pass an array that my function then fills with the output values: void computeValues(int input, std::vector<int>& output); So, the function will fill the vector output with the values it computes. But this is not really good C++ style...

how to declare volatile iterator in c++

Is there a way to declare an iterator which is a member variable in a class and that can be incremented using a member function even though the object of that class is const. ...

Numerical range iterators in boost?

I'm aware of the range iterators in boost, and as for this reference, it seems there should be an easy way of doing what I want, but it's not obvious to me. Say I want to represent a numerical range, 0 to 100 (inclusive or not), say range(0,100). I would like to do something like: for_each(range<int>(0,100).begin(), range<int>(0,100).e...

Accessing vector elements inside another vector through an iterator?

std::vector< std::vector<coords> >::iterator iter; for(iter = characters.begin(); iter != characters.end(); iter++) { std::vector<coords>* cha = iter; // doesn't work. } // does work. std::vector<coords>* character = &characters.at(0); coords* first = &character->at(0); And I don't get why. Isn't iter supposed to be a pointer to an ...

Combining recursive iterator results: children with parents

I'm trying to iterate over a directory which contains loads of PHP files, and detect what classes are defined in each file. Consider the following: $php_files_and_content = new PhpFileAndContentIterator($dir); foreach($php_files_and_content as $filepath => $sourceCode) { // echo $filepath, $sourceCode } The above $php_files_and_c...