You can find valuable information at the following places:
We provide an overview of the most important C++ concepts used in olympaid tasks. The document can be found here [german] soi_cpp_tutorial.pdf
The code snippets can be downloaded separately soi_cpp_tutorial_code.tar.gz.
A list of often-used algorithms in SOI-competitions can be found here soi_algorithms.pdf
In order to get familiar with the algorithms and datastructures involved, we recommend these sites:
Real training is always the most important aspect - you can find tons of tasks on the Sphere Online Judge. Make sure you sign up for Switzerland, to get us back in the top 20 where we belong!
There is a new long-term contest for high school students running at SPOJ: the High School Programming League 2008/2009. You are encouraged to participate!
There are plenty of books on algorithms in general, some of which are: