سلام من یک Vector دارم به این شکل :
vector<string> s = {"abc", "777"}
می خوام خروجیم این بشه :
vector<string> s = {"abc", "777", "abc", "777"}
از insert استفاده کردم ولی درست کار نمی کنه
s.insert(s.end(), s.begin(), s.end());
چکار کنم ؟
بجای insert در انتها در ابتدا درج کنید.
s.insert(s.begin(), s.begin(), s.end());
در روش بالا iterator های موجود پس از اینکار نامعتبر میشن ولی جهت معتبر ماندن iterator های موجود می تونید از روش زیر استفده کنید.
auto old_count = s.size(); s.reserve(2 * old_count); std::copy_n(s.begin(), old_count, std::back_inserter(s));
این شاید حریصانه ترین راه باشه ولی جواب میده
vector <string> v = {"123" ,"abc"}; int temp = v.size(); for (int i = 0; i < temp; i++) v.push_back(v[i]);
v.reserve(temp* 2);