我可以直接傳遞我的數組,但我需要知道如何通過引用傳遞它。我正在使用類型爲Element的新std :: array。我嘗試了幾件事,但他們沒有工作。我不確定如何通過它作爲參考。我搞砸了,我無法弄清楚。通過std :: array作爲參考參數
如何傳遞std ::數組作爲參考參數以避免複製整個數組?
我的數組是如何設置:
std::array<Element, 115> Elements =
{{
/*int aNumber, float awNumber, period_number PERIOD, group_names GROUP_NAME, metal_status METALSTATUS,
valence_shell Orbital,std::string eName, std::string eSybol);*/
{},
{1, 1.00794, period::PERIOD_ONE, group::HYDROGEN, metal::NONMETAL, shell::S_ORBITAL, "Hydrogen", "H"}
}};
工作
void sortByAtomicNumber(std::array<Element, 115> elements, int minimum, int maximum)
{
int counter = 1;
for(;minimum < (maximum+1); minimum++)
{
std::cout << counter << ".) " << elements[minimum].getElementName() << std::endl;
counter++;
}
}
嘗試來源:http://gauravpandey.com/wordpress/?p=602 //我還沒學會模板尚未...
template<size_t N>
void sortByAtomicNumber(std::array<int, N> const& arr, int maximum, int minimum) {
int counter = 1;
for(;minimum < (maximum+1); minimum++)
{
std::cout << counter << ".) " << arr[minimum].getElementName() << std::endl;
counter++;
}
}
錯誤從上面
error: passing 'const value_type {aka const Element}' as 'this' argument of 'std::string > > Element::getElementName()' discards qualifiers [-fpermissive]
不要使參考'const',因爲那樣你將不能修改數組... – Brian
@BrianBi我不需要修改數組;這就是爲什麼我使用數組而不是矢量。 – Crysis
哎呦,我誤讀了,對不起。 – Brian