我可以直接传递我的数组,但我需要知道如何通过引用传递它。我正在使用元素类型的新 std::array。我已经尝试了几件事,但它们不起作用。我不确定如何将其作为参考传递。我搞砸了,我无法弄清楚这一点。
如何将 std::array 作为引用参数传递以避免复制整个数组?
我的阵列是如何设置的:
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++;
}
}
上面的错误
错误:传递 'const value_type {aka const Element}' 作为 'std::string > > Element::getElementName()' 的 'this' 参数丢弃限定符 [-fpermissive]