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 番目の配列にコピーする要素の数) が 2 であるとします。その場合、2 番目の配列を 1, 2 にする必要があります。ただし、しばらくしてから配列全体を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;dr タイトルの質問にお答えします。

std::vectorコンストラクターで使用する

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

またstd::copy

于 2012-10-29T15:38:48.897 に答える
-1

私は(std :: copyの)C ++の方法が好きではありません-私はむしろmemcpy()orを使用しますmemmove()。私はより_コントロール_を感じます</sarcasm>

于 2012-10-29T15:42:11.933 に答える