For immediate use you can use __String, but I think they want you to use a cocos2d::Value like you said. I haven’t used it, but I found its wiki page.
The memory of cocos2d::Value is handled automatically by its own destructor. So please stick to the best practice of c++ memory management rules when handling the memory of cocos2d::Value.
Sounds like you should use standard STL containers, like std::vector. And without pointers.
Thanks everyone for your help, I am now using a std::vector but this means I am mixing std::vector and cocos2d::Vector.
I was hoping for a pure cocos2D way of doing things but at least this remove the numerous warnings I have.