2017-07-10 77 views
-3

Im将数据从一个矢量复制到另一个矢量时遇到问题。 为了更好地理解我的问题,想象我有一个vectorA和一个vectorB,数据类型相同。 矢量A里面没有东西,有5个尺寸。C++将X矢量数据插入到另一个矢量

我想把vectorB的前5个字节放到vectorA中,但我不知道如何。 基本上,这样的事情:

vectorA.insert(vectorB.begin(),5,vectorB(5)); 

,这并不工作,但我怎么可以做这样的事情? 我应该把数组中的向量?我真的无法做什么,因为我是新来的矢量工作,所以帮助/解决方案会很好。

无论如何,谢谢!

+1

做 “向量A里面没有什么,有5大小。”这似乎是自相矛盾的。 – juanchopanza

+0

@juanchopanza我的意思是,它有足够的大小来容纳5个字节 – jeyejow

+0

这听起来像*容量*,但字节不是一个很好的指标,除非你有一个字节向量。 – juanchopanza

回答

2

您可以填写最多a,象这样b的数据:

std::vector<char> a,b; 
// fill up b 
a.insert(a.begin(),b.begin(),b.end()); 

// or if only wanting a certain number of bytes: 
size_t bytes = 5; 
a.insert(a.begin(),b.begin(),b.begin() + 5); 

要小心,以确保b有足够的数据,如果你用第二个方法去插入。你可以用一个有条件的或像这样检查:

a.insert(a.begin(),b.begin(),b.begin() + std::min(b.size(), 5)); 

我们看看std::insert第四原型。

+0

如果vectorB超过5个字节,我只想要第5个字节? – jeyejow

+0

@jeyejow查看编辑 – Charles

+1

在11分钟内接受你的awnser,但是谢谢! :) – jeyejow

0

你可以简单地使用for loop

int size=5; 
for(int i=0;i<size;i++) 
{ 
    vectorA.push_back(vectorB[i]); 
}