有什么简洁方法把一个vector,变成为原来容器变量的两个连起来的新容器变量?
其实很简单。假设我现有的容器为vec={1,2,3,4},我想把它变成{1,2,3,4,1,2,3,4}。
我想知道有没有什么直接的最发,或者自带的函数来实现这个功能。我所看的书上没有?
如果真的没有,我只能一个个push_back了
作者: chenhua8869 发布时间: 2011-06-15
作者: bdmh 发布时间: 2011-06-15
作者: c_losed 发布时间: 2011-06-15
作者: hnuqinhuan 发布时间: 2011-06-15
vec.insert( vec.end(), vec.bein(), vec.end() );
没试过,你自己斟酌
作者: bruceteen 发布时间: 2011-06-15
作者: chenhua8869 发布时间: 2011-06-15
#include <vector> #include <algorithm> #include <iterator> #include <iostream> using namespace std; int main() { vector<int> vec; vec.push_back( 1 ); vec.push_back( 2 ); vec.push_back( 3 ); vec.push_back( 4 ); copy( vec.begin(), vec.end(), ostream_iterator<int>(cout," ") ); cout << endl; vec.reserve( vec.size()*2 ); vec.insert( vec.end(), vec.begin(), vec.end() ); copy( vec.begin(), vec.end(), ostream_iterator<int>(cout," ") ); cout << endl; return 0; }
看起来可行
作者: bruceteen 发布时间: 2011-06-15
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
int num = 4;
for (int i = 0; i < num; ++i)
{
vec.push_back(i);
}
vec.resize(2*vec.size());
memcpy(&vec[vec.size()/2], &vec[0], vec.size()/2*sizeof(int));
for (size_t j = 0; j < vec.size(); ++j)
{
cout << vec[j] << " ";
}
return 0;
}
作者: wzx19840423 发布时间: 2011-06-15
作者: dxy0613 发布时间: 2011-06-15
作者: qq120848369 发布时间: 2011-06-15