iterator

Where is this code dereferencing an invalid iterator? (C++)

I have a loop for(aI = antiviral_data.begin(); aI != antiviral_data.end();) { for(vI = viral_data.begin(); vI != viral_data.end();) { if((*aI)->x == (*vI)->x && (*aI)->y == (*vI)->y) { vI = viral_data.erase(vI); aI = antiviral_data.erase(aI); } else { vI++; aI++; } } } But when ever antiviral_data contains a...

Getting the refrence of a template iterator refrence

Hello all :) I need to get a reference to an iterator of a reference. However, my compiler is choking on this code: template <typename InputIterator> size_t iLongestBegin(InputIterator first, InputIterator last) { typedef typename std::iterator_traits<InputIterator>::reference SequenceT; //Problem is next line typedef t...

Can I implement yield return for IEnumerable functions in VB.NET?

In C#, when writing a function that returns an IEnumerble<>, you can use yield return to return a single item of the enumeration and yield break; to signify no remaining items. What is the VB.NET syntax for doing the same thing? An example from the NerdDinner code: public IEnumerable<RuleViolation> GetRuleViolations() { if (String...

What is the difference between iterators in Java and C++?

How is the implementation of Iterator in Java different from that in C++? ...

How to use counter in for loop python

Hi, my_date_list = ['01', '02', '03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'] str_date_list=[] for item in my_date_list: str_date_list.append(item+'-'+'05' + '-' +'09') counter= 0 i = iter(range(31)) for item in i: daily_user_sta...

Java iterator

I am a newbie, I have a question. I have a map. I have to loop through the map and build the iterator. Example: public Iterable<Test> getTests(Map<String, Test> testMap, Set<String> strings) { //loop tru the set of strings and build iterator. for(final String test1 : strings) { Test test = testMap.get(test1); ...

Is there an easy way to iterator over a static list of strings in C++

It often happens that I need to iterate over a list of strings in my C++ code. In languages like Perl, this is easy: foreach my $x ("abc", "xyz", "123") {.... } In the past, this is what I've done in C++ const char* strs[] = { "abc", "xyz", "123" }; for (int i=0; i<sizeof(strs)/sizeof(const char*); i++) { const char *str = strs[i...

Make a c++ iterator that traverses 2 containers

I have a need for a "container" that acts like the following. It has 2 subcontainers, called A and B, and I need to be able to iterate over just A, just B, and A and B combined. I don't want to use extra space for redundant data, so I thought of making my own iterator to iterate over A and B combined. What is the easiest way to make your...

Is the following code using std::set "legal"?

I have this code: set<int>::iterator new_end = set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), set1.begin()); set1.erase(new_end, set1.end); It compiles and runs fine in visual studio. However, in a previous question, people stat...

Why does push_back or push_front invalidate a deque's iterators?

As the title asks. My understanding of a deque was that it allocated "blocks". I don't see how allocating more space invalidates iterators, and if anything, one would think that a deque's iterators would have more guarantees than a vector's, not less. ...

What is the difference between accesing vector elements using an iterator vs an index?

What advantages are there in accessing vector elements using an iterator vs an index? ...

Why does defining __getitem__ on a class make it iterable in python?

Why does defining __getitem__ on a class make it iterable? For instance if I write: class b: def __getitem__(self, k): return k cb = b() for k in cb: print k I get the output: 0 1 2 3 4 5 6 7 8 ... I would really expect to see an error returned from "for k in cb:" ...

different using. java.util.Enumeration and Iterator

what is the exact different of both.. is using enumeration more benefit than using iterator..? can anyone elaborate.. any reference article would be appeciated ...

map.erase( map.end() )?

Consider: #include <map> int main() { std::map< int, int > m; m[ 0 ] = 0; m[ 1 ] = 1; m.erase( 0 ); // ok m.erase( 2 ); // no-op m.erase( m.find( 2 ) ); // boom! } (OK, so the title talks abouting erasing an end() iterator, but find will return end() for a non-existent key.) Why is erasing a non-existent ...

C++ iterator problems

I have the following member data vector<State<T>*> activeChildren; I want to clean-up these pointers in my destructor StateContainer<T>::~StateContainer() { vector<State<T>*>::iterator it = activeChildren.begin(); while(it!=activeChildren.end()) { State<T>* ptr = *it; it = activeChildren.erase(it); delete ...

Adding and removing items without invalidating iterators

I have an object that has a list of 'observers'. These observers get notified of things, and they might respond to this change by adding or removing themselves or other observers from the object. I want a robust, and not unnecessarily slow, way to support this. class Thing { public: class Observer { public: virtual void o...

Access Iterator in BOOST_FOREACH loop

I have a BOOST_FOREACH loop to iterate over a list. Unfortunately, I also need to cache an iterator to a particular item. typedef List::iterator savedIterator; BOOST_FOREACH(Item &item, list) { // stuff... if (condition) savedIterator = &item; // this won't work // do more stuff... } Obviously I can do this using a list.b...

Joining a set of ordered-integer yielding Python iterators.

Here is a seemingly simple problem: given a list of iterators that yield sequences of integers in ascending order, write a concise generator that yields only the integers that appear in every sequence. After reading a few papers last night, I decided to hack up a completely minimal full text indexer in Python, as seen here (though that ...

"Cannot convert parameter" using boost::variant iterator

I want to create a function that can take different types of iterators which store the same type of object: The first is a std::map containing shared_ptr<Foo> (typedef-ed as FooMap) and the other is a std::list which also contains shared_ptr<Foo> (FooList). I really like the solution MSalters suggested for a similar question and tried t...

error C2440: 'initializing' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'type *'

I am getting the following error while migrating VC6 code to VS2008. This code works fine in VC6 but gives a compilation error in VC9. I know it is because of a compiler breaking change. What is the problem and how do I fix it? error C2440: 'initializing' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'STRUCT_MUX...