I would like to be able convert one format to another(not immediately but eventually),know how to use tree and hash tables and linked lists properly using classes.
I want to be able to do a basic graphic user interface and use pointers well.
I've heard of the following books:
Exceptional C++-by Herb Sutter
Generative Programming,methods,tools and applications-by Czarnecki and Eisenecker
Algorithms in C++-Robert Sedgewick
Are these books good?except for the last one,will it help with what i want to learn?
If you have better clearer books you'd recommend please let me know
Thank You.

The Sutter book is Excellent, Also you should look at his STL book (Exceptional STL, I think). The STL is the "way-to-do-things" nowadays and the earlier you get to grips with that the better.
User-interfaces are not standardised so you need a platform specific book. Windows and POSIX - based interfaces are very different.
Also have a look at rather good online help like
http://www.cppreference.com/wiki/
Boost is a set of libraries that is very helpful and many of the things you find there complement the standard very well.
http://www.boost.org/doc/libs/1_46_0/
and others.
When you are a bit advanced then have a look at
http://www.gotw.ca/gotw/
That is Herb Sutters site and gives exceptional insight into the inner workings of C++. Not quite for beginners, even some intermediate programmers might find some of it quite challenging, but well worth looking at.

>>how to use tree and hash tables and linked lists properly using classes.
This sounds more like you need a Computer Science textbook. Using trees, heaps, hash tables, self-balancing trees, linked lists, etc. etc., these are computer science topics and they generally differ only on the details when it comes to implementation in C++ versus another language. I really don't know any general books in that field (I'm mostly going with specific problems -> specific methods -> wiki-page on it or a scientific paper on it -> implementation).

>>I want to be able to do a basic graphic user interface
This is not a C++ thing either. This is specific to the GUI tool that you can or want to use. I recommend Qt. I'm sure there are plenty of books or online tutorials/resources to help you with that.

>>and use pointers well.
The more you learn about C++, the less likely it is that you will use pointers (at least raw pointers). But surely, you have to know how to use them, I would put this under "basic skills" in C++.

>>Exceptional C++-by Herb Sutter
I haven't read it, but anything by Herb Sutter is bound to be awesome.

All the resources that drkybelk has recommended are are surely very good. Boost is a master-piece of a library, the more of it you can understand and use, the better you are as a programmer, I would say.

I would also recommend reading through the C++ FAQ by Marchall Cline. There is a ton of information in there about the intricacies of C++ and guidelines for designing good applications.

Once you have gone through the C++FAQ, you would be ready to tackle two of my favorite books on C++:
"C++ Coding Standards ..", Herb Sutter and Andrei Alexandrescu
"Modern C++ ..", Andrei Alexandrescu
The former has 101 rules and guidelines that are really great for improving the quality of your coding. The latter is probably the most advanced C++ book that you can find, it's not for the faint of heart, but with enough knowledge of C++ to start reading, it's delightful, a real demonstration of C++'s magic and awesome power.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.