It is better because the code has already been written, tested and debugged. It makes development time faster (usually even if you have never used it before) because it is easier to use and harder to mess up. In most cases, the speed is basically the same.

I would start by using std::string and std::vector. They aren't that hard to use, and will make writing this class easier. If you want to try boost::variant, that will do what you want, but it is more advanced and is not standard so you have to download the boost library and put in more effort to learn it.