If you chose the std::vector, then to find an element with given id, you can perform a half-interval (binary) search on your vector (I assume that elements in vector are sorted by the id, as in your example). Worst-case performance of binary search is O(log n) - same as find() on std::map.
If the values will not be sorted, I suggest using std::map with id as key, because using std::vector, in order to find the given element, you will need to perform linear search on the container ( complexity O(n), its slower than O(log n) ).
To summarize: if elements in vector are sorted by id, use std::vector and binary search. If not, use std::map (if you really care about the find() speed).
---
probably you will get similar results using those two approaches ( you can do some performance tests ), in that case using std::map is far more convenient.