vector of class

X

xyz

i have a vector of certain class which has certain parameters
xxx is my class
and here is my vector
std::vector<xxx > yyy;

in my vector i have the data as below:
12 abcde 34567 asdf 1
13 fjggkf 2343 fkjhk 3
12 fgfgfh 33434 fgh 2
34 dgdg 5454 fgfdg 2
.....
now i want to iterate through my vector inorder i have to delete 2nd
line in my vector
here is my iterator which goes through all elements of my vector

std::vector<xxx >::iterator iter;

i could able to do with the integer vector but i have problem with the
vector of certain class
thank you for any help
 
D

Daniel T.

i have a vector of certain class which has certain parameters
xxx is my class
and here is my vector
std::vector<xxx > yyy;

in my vector i have the data as below:
12 abcde 34567 asdf 1
13  fjggkf 2343 fkjhk 3
12 fgfgfh 33434 fgh 2
34 dgdg 5454 fgfdg 2
....
now  i want to iterate through my vector inorder i have to delete 2nd
line in my vector
here is my iterator which goes through all elements of my vector

std::vector<xxx >::iterator iter;

i could able to do with the integer vector but i have problem with the
vector of certain class

You do it the same way.
thank you for any help

Use the erase-remove idiom. If your class defines an operator== that
can compare two of them for equivelance, then simply:

yyy.erase(remove(yyy.begin(), yyy.end()), yyy.end());

If your class doesn't have an op==, then you will have to define a
predicate that returns true for the value(s) that needs to be removed
and use the remove_if algorithm:

bool mypred(const xxx& left, const xxx& right);
// returns true is left is like right.

yyy.erase(remove_if(yyy.begin(), yyy.end(), &mypred), yyy.end());

You could also use a function object (functor) for "mypred", possibly
even compose one from the standard ones that exist or using something
like the boost lambda library.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,241
Members
46,831
Latest member
RusselWill

Latest Threads

Top