使用權的的std ::陣列我有這個二維數組:array <array <int , 4> , 4> myarray
如何聲明和在C++
如何聲明是正確的程序?
//I first include
#include <array>
然後我初始化
array<array<int,4>,4> myarray = {{
{1, 2, 3, 4},
{5, 6, 0, 8},
{9, 10, 11, 12},
{13, 14, 15, 7}
}};
我宣佈我的功能:
void func1(array<array<int,4>,4>);
void func2();
void func3(int&, int&, array<array<int,4>,4>);
void func4(array<array<int,4>,4>);
void func5(array<array<int,4>,4>);
void func6(array<array<int,4>,4>);
寫一個主要功能:
int main() {
func1(myarray);
func2();
func3(myarray);
func4(myarray);
func5(myarray);
func6(myarray);
return EXIT_SUCCESS;
}
然後我寫的功能
void func1(array<array<int,4>,4> myarray)
{//something
}
void func2();
{//something
}
void func3(int&, int&, array<array<int,4>,4> myarray);
{//something
}
void func4(array<array<int,4>,4> myarray);
{//something
}
void func5(array<array<int,4>,4> myarray);
{//something
}
void func6(array<array<int,4>,4> myarray);
{//something
}
上午我什麼地方錯了?
的一點是,該初始化數組:{1, 2, 3, 4}, {5, 6, 0, 8}, {9, 10, 11, 12}, {13, 14, 15, 7}
將在第一輸入FUNC。第一個func的輸出將是不同的4x4陣列,例如{15, 14, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {2, 1, 4, 13}
。這個不同的數組將被放在第二個輸入。這個func的輸出將是不同的東西等,等等......
問題我有,是大多數函數的輸出是初始化數組。
感謝您的幫助提前。
這些函數都沒有返回任何東西,或者修改'myarray',因爲它們都是自己的副本。你的意思是通過參考嗎? '&myarray'? –
爲什麼你專注於詢問數組的聲明*?如果這個聲明有問題,編譯器會告訴你,你根本就沒有想到運行你的程序。請始終描述問題的*症狀*,而不是*診斷*。在這種情況下,症狀是將函數應用於變量,但其值不變。讓*這是你問題的主要話題。 –