??????C++?У??????????????????????????????и???????????????????

struct STest
{
    int a;
    int b;
    vector<int> vctInt;
};

????????????????????飺

STest A[20];
STest B[20];

?????????????A?е?????????????B?????У???????????????????????

for(size_t i = 0; i < ARRAYSIZE(A); ++i)
{
    A[i] = B[i];
}

????????????????memcpy?????STest????vector???????????????????????????????????飬??????????Ч?????????????memcpy?????Ч??

????????????????????????????C++??????????????в??????????????????д????

?????????д??????????????????д?????壬???????????C++???????????????????

template<typename T??size_t N>
inline void ArrayAssign(T (&A)[N]?? T (&B)[N])
{
    for(size_t i = 0; i < N; ++i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A[i] = B[i];
}

template<size_t N>
inline void ArrayAssign(bool (&A)[N]?? bool (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(char (&A)[N]?? char (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(short (&A)[N]?? short (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(int (&A)[N]?? int (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(long long (&A)[N]?? long long (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(unsigned char (&A)[N]?? unsigned char (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(unsigned short (&A)[N]?? unsigned short (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(unsigned int (&A)[N]?? unsigned int (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}

template<size_t N>
inline void ArrayAssign(unsigned long long (&A)[N]??unsigned long long (&B)[N])
{
&nbsp;&nbsp;&nbsp; memcpy(A??B??sizeof(A));
}