vector — dynamic array. list — doubly linked list.
vector:
1std::vector<int> v = {1, 2, 3};2v.push_back(4);3v[2] = 10; // Random access
list:
1std::list<int> l = {1, 2, 3};2l.push_back(4);3// l[2] = 10; // Error! No random access4auto it = std::next(l.begin(), 2);5*it = 10;
When to use: