What is the fundamental difference, if any, between a C++ std::vector and std::basic_string?
The basic_string provides many string-specific comparison options. You are right in that the underlying memory management interface is very similar, but string contains many additional members, like c_str(), that would make no sense for a vector.