118 votes

Existe-t-il une fonction pour copier un tableau en C/C++ ?

Je suis un programmeur Java qui apprend le C/C++. Je sais donc que Java possède une fonction comme System.arraycopy() ; pour copier un tableau. Je me demandais s'il existait une fonction en C ou C++ pour copier un tableau. Je n'ai pu trouver que la mise en œuvre de la copie d'un tableau en utilisant la boucle for, les pointeurs, etc. Existe-t-il une fonction que je peux utiliser pour copier un tableau ?

2voto

Tout d'abord, parce que vous passez au C++, vecteur Il est recommandé de l'utiliser à la place du traditionnel tableau . En outre, pour copier un tableau ou un vecteur, std::copy est le meilleur choix pour vous.

Visitez cette page pour savoir comment utiliser la fonction de copie : http://en.cppreference.com/w/cpp/algorithm/copy

Exemple :

std::vector<int> source_vector;
source_vector.push_back(1);
source_vector.push_back(2);
source_vector.push_back(3);
std::vector<int> dest_vector(source_vector.size());
std::copy(source_vector.begin(), source_vector.end(), dest_vector.begin());

1voto

Essayez ceci :

  1. Créez un tableau vide.
  2. Insérez les éléments.
  3. Créez un tableau vide dupliqué de la même taille.
  4. Démarrer pour i=0 à i=longueur du tableau.
    5. newarray[i]=oldarray[i] (uniquement pour C++)

Programme C++

#include<iostream>
using namespace std;
int main()
{
        int initA[100],finA[100],i,size;
        cout<<"Input the size of the array : ";
        cin>>size;
        cout<<"Input the elements of the first array";
        for(i=0;i<size;i++)
        {
               cin>>initA[i];
        }
        for(i=0;i<size;i++)
        {
             finA[i]=initA[i];
        }
        cout<<"The final array is\n";
        for(i=0;i<size;i++)
               cout<<finA[i]<<" ";
        return 0;
}

-1voto

Tawhid Monowar Points 1

Vous pouvez utiliser la fonction copy en c++ pour copier facilement un tableau dans un autre.

#include <bits/stdc++.h>
using namespace std;

int main()
{

    int x[10]={10,1,8,8,6,1,4,7,3,5};
    int y[10];

    copy(begin(x), end(x), begin(y));

    for(int i=0;i<10;i++)
    {
        cout << y[i] << " ";
    }

 return 0;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X