1)string str="hoge";vector<string> vec;
2)vec.push_back(str);
3)str="fuga";

ここで2)でvectorに追加されているのはstrそのものでしょうか
あるいはそのコピーでしょうか?
また3)では2)でvectorに登録された内容は上書きされてしまうのでしょうか