In the following code we can demonstrate a bug related to small/big strings when they are held in a vector (this is because small strings may not get allocated on the heap).
One can argue that this is not a bug in the standard library but the programmer's fault, for taking a reference to something that could disappear in the process of reallocation. But as a programmer I'm not supposed to know the internal implementation of a data structure
#include<iostream>
#include<vector>
int main()
{
std::vector<std::string> v;
v.push_back("123456789abcdefg"); //bug if less than 16 characters
const char* first = v[0].c_str();
for (auto s : { "hi","guys" })
v.push_back(s);
std::cout << first << std::endl;
std::cin.get();
}