I know, you make a thing that lets you put a . after it, like... vectorlist<type> name, then name.something, and then this thing would see if it's erase or insert, it would use list, if it's push_back then use vector... I have no idea if that's possible, but it seemes logical enough to me :P
You don't seem to understand how lists and arrays are different. Arrays offer fast access through locality of reference, but it's time consuming to properly delete from the middle of an array. It can be difficult too, if you've never had a similar problem before.

Lists are easy to delete from because they only refer to their neighbors. It can be difficult (but not impossible) to ensure locality of reference.

Now combining the two is interesting. You can always have a list of arrays, for example, but that doesn't always make out to be a silver bullet. To demonstrate effective use: a list of arrays is often used to resolve collisions in hash tables. The reason it ain't a silver bullet though is because algorithm design depends on how you should properly store data. If the data is atomic, then using a list of arrays does not make sense, does it? You use both data structures and yet get none of the benefits, being rather cute and wasteful in terms of resources.