c++ vector questions | Sololearn: Learn to code for FREE!

+1

c++ vector questions

What exactly is vector<int> :: iterator i Why the type? (<int>) Why can't we use a normal for loop to iterate through a vector? what's the difference between using that iterator, and using for(int i :: myvector) (I think that's how I remember it)? Iteration with vectors just seems odd, ya know?

2/8/2019 6:25:21 AM

Daniel Cooper

7 Answers

New Answer

+5

1) Simply is an object of type iterator. Note than exists 5 types of iterators divided in hierarchy. 2) Because C++ had to know which object is used by data structure for make checks and right allocations in code 3) Who say this? You can use use normal loop for looping on a vector 3) Its same, only than all is hided to you 4) I didnt understandood this question... I dont think that is strange the iteration on vector data structure...

+5

You are welcome 👍👍👍 Remember to bookmarks the site for C++ reference 😉

+3

vector is template class. When you use keyword : vector<MyClass>, at compile time compiler writes a new class for you. So that's why specifying type in <> is necessary. Iterators are objects which are like pointers in simple array. Iterators can be incremented/decremented using unary + / - and can be compared to other iterators using ==/!= . iterators can be dereferenced to get actual value. There are different STL functions which take iterators as parameters. We have begin and end method to get iterators for first and (last element + 1). end iterator cannot be dereferenced. You can do something like this :- for(auto i = myvec.begin(); i!= myvec.end(); i++) { cout << *i; } p.s. I read about iterators yesterday, correct me if I am wrong

+3

I answer you in this way: read here http://www.cplusplus.com/reference/iterator/

+1

KrOW So somebody on Discord told me I couldn't use normal looping for vectors. And when I tested it, it returned an error. I didn't bother reading the error because I just assumed he was correct. I tested it just now and it worked fine. https://code.sololearn.com/cnh2U1XQ2TIk/?ref=app That brings up a new question. Can these iterators be used for other containers like arrays? Because I assumed they were strictly for vectors.

+1

code learner Feel free to answer this second question. Thanks for your answer btw.

+1

KrOW This is exactly what I tried to find, but for some reason it wouldn't show up for me xD. Thank you.