It depends on what you want to do, which you haven't specified. I'm going to assume you want to make a list of strings, that would be list<string> musicList; as string names the type of object to make a list of.
#include <string>
#include <list>
// either
#include <array>
std::list<std::array<std::string, 3>> alist; // list of arrays of 3 strings
// or (C++98)
#include <vector>
std::list<std::vector<std::string>> alist; // list of dynamic arrays of strings
EDIT: sorry, missed your earlier post about C++11. But, you should consider using it - it has been around for 3 years now, most compilers should support it.
If it is defined inside of a function is it scoped to that function as the "error" or "warning" you got. Meaning you can't use it outside of that function.