0

这是我到目前为止所拥有的:

#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。这还没有结束不过,我希望一段时间后将整个数组复制到第二个数组中。我想要这样的东西:

  • 1, 2
  • 收到第 1 部分
  • 1、2、3、4
  • 收到第 2 部分
  • 1、2、3、4、5、6
  • 收到第 3 部分
  • 1、2、3、4、5、6、7、8
  • 收到第 4 部分
  • 1、2、3、4、5、6、7、8、9、10
  • 收到第 5 部分

程序中包含“收到的部分..”。然后它就会完成。

如果用户的第一个数组的大小是 4,而 sizeCopy 是 2,那么我想要这样的东西:

  • 1, 2
  • 收到第 1 部分
  • 1、2、3、4
  • 收到第 2 部分

我可以就如何完成这项工作获得一些帮助吗?我想我可以管理如何将整个数组复制到另一个数组中,或者至少是其中的一部分。但是一个人怎么做我想做的事呢?我想我需要循环,但我不知道更多。

4

2 回答 2

3

tl;博士我将回答标题中的问题。

std::vector与构造函数一起使用

template< class InputIt >
vector( InputIt first, InputIt last, 
    const Allocator& alloc = Allocator() );

或者std::copy

于 2012-10-29T15:38:48.897 回答
-1

I don't like the C++ way(of std::copy) - i rather use memcpy() or memmove(). I feel more in _control_ </sarcasm>

于 2012-10-29T15:42:11.933 回答