C++:我想将数据从结构复制/存储到单独的数组中

C++: I want to copy/store data from struct into individual arrays

本文关键字:存储 单独 数组 复制 结构 数据 C++      更新时间:2023-10-16

我写了一个基本的get函数,它获取结构的元素,并将它们复制/存储到单独的变量中。我想做同样的事情,除了将结构数组存储到数组变量中(关键是我想使用我已经编写的 get 函数)。我可以轻松地做我想做的事情,而无需嵌入我的第一个函数,但我需要在第二个函数中使用我的第一个函数,并且遇到了一些问题。

我的一个错误是,我放入第二个函数中的嵌入式 get 函数中没有匹配的函数调用(我认为我已将变量与我的第一个 get 函数(即 n、c、a 和 x)正确匹配)。

谢谢你的关注。

#include <iostream> 
#include <cstdlib> 
using namespace std; 
struct ABC
{ 
    int n; 
    char c; 
    double a[3]; 
}; 

void get( int & n, char & c, double a[3], const ABC & x )
{ 
    n = x.n; 
    c = x.c; 
    for (int i = 0; i < 3; i++){ 
    a[i] = x.a[i]; 
    } 
} 
void get( int n[], char c[], double a[][3], const ABC x[], int elements )
{
    for (int i = 0; i < elements; i++){ 
    get(n, c, a, x); 
    } 
} 
int main()
{ 
    ABC x = {number, m, {1, 2, 3}}; 
    ABC xx[4] = { 
    {123, 'A', {1.1, 1.2, 1.3}}, 
    {234, 'B', {2.1, 2.2, 2.3}}, 
    {345, 'C', {3.1, 3.2, 3.3}}, 
    {456, 'D', {4.1, 4.2, 4.3}} 
    }; 
    int n; 
    char c; 
    int a[] = {}; 
    int n1 [4] = {}; 
    char c1 [4] = {}; 
    double a3 [4] [3] = {}; 
    int elements = 3; 
    get(n1, c1, a3, xx, elements); 
    return 0; 
} 

你可能想说

get(n[i], c[i], a[i], x[i]); 

这并不能回答您的XY问题

"固定"代码(编译) Live On Coliru

在我看来

,在带有数组的 get 函数中,您始终将值存储在每个数组的同一位置。您可能应该执行以下操作:

get(n[i], c[i], a[i], x[i]);