Нет, с массивом сложных объектов вам нужен цикл, или вы можете обернуть цикл с помощью std::copy
:
std::string Array1[3] = { "A", "B", "C" };
std::string Array2[3];
std::copy(Array1, Array1 + 3, Array2);
Однако я предлагаю использовать более канонический std::vector
, который имеетродное задание (см. этот SO ответ о способах заполнения std::vector
):
std::vector<std::string> Array1, Array2;
Array1.push_back("A"); Array1.push_back("B"); Array1.push_back("C");
Array2 = Array1;
Или, по крайней мере, boost::array
(std::array
, если вы 'на C ++ 0x, std::tr1:array
или аналогичных на TR1-совместимых инструментальных цепочках, таких как недавние MSVS), что является статически распределенным эквивалентом, который также может быть назначен:
using boost::array; // swap as appropriate
array<std::string, 3> Array1 = {{ "A", "B", "C" }}; // yes, I used two
array<std::string, 3> Array2 = Array1;