我不知道是否可能,但我想做这样的事情:
templateint search(T array, int first = 0, int last = array.size()) { }
这里T应该是一个容器,我想知道它的大小并将其用作默认参数.那可能吗?
编辑:是的,犯了一个错误,它不是T而是数组.
你不能使用T.size()
因为T
不是一个对象.
您可以使用函数重载来完成您正在尝试的操作.
templateint search(T const& array, int first, int last) { } template int search(T const& array, int first = 0) { return search(array, first, array.size()); }
PS我改变了阵列的类型T const&
从T
.这将阻止在调用函数时进行复制.