这是我到目前为止所做的:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int size;
int sizeCopy= 0;
int *array;
cin >> size;
cout << endl;
cin >> sizeCopy;
array = new int [size];
int i = 0;
int counter = 1;
while(i<size)
{
array[i] = counter;
++counter;
++i;
}
cout << "The array contains: ";
for(i=0; i<size; i++)
{
cout << array[i] << ", ";
}
cout << "\n";
return 0;
}
到目前为止,我创建了一个程序,它将询问用户输入的数组大小,以及在新数组中复制数组元素的大小(即sizeCopy)。
我设法创建了第一个数组,我希望它是这样的:如果用户输入为3,则数组将包含1,2,3。 我的用户输入是10,数组将包含1,2,3,4,5,6,7,8,9,10。
这似乎完美无缺。 现在我想将我的int数组的一部分复制到另一个,但它比这复杂一点。 假设第一个数组(大小)的用户输入是10,而sizeCopy(要复制到第二个数组中的元素数量)是2,那么我希望第二个数组为:1,2。 虽然没有结束,但我希望在一段时间后将整个数组复制到第二个数组中。 我想要这样的东西:
程序中包含“Received part ..”。 然后就可以了。
如果第一个数组大小的用户是4,而sizeCopy是2,那么我想要这样的东西:
我可以获得一些如何完成这项工作的帮助吗? 我想我可以管理如何将整个数组复制到另一个,或者至少是其中的一部分。但是,如何做我想做的事情呢?我想我需要循环,但我不知道更多。
答案 0 :(得分:3)
tl; dr我要回答标题中的问题。
将std::vector
与构造函数
template< class InputIt >
vector( InputIt first, InputIt last,
const Allocator& alloc = Allocator() );
答案 1 :(得分:-1)
我不喜欢C ++方式(std :: copy) - 我宁愿使用memcpy()
或memmove()
。我在 _control_ </sarcasm>