我想要这种界面
#include <vector>
void fun(std::vector<int> v){ }
int main(){
fun({1, 2, 3, 4}); //<-- this type of invocation
}
而不是
void fun(int argc, int* args){ }
int main(){
int a[]={1,2,3,4};
fun(sizeof(a)/sizeof(int), a);
}
我可以让向量进入堆栈(或使用行为类似于堆栈向量的东西)吗?
(std::array
似乎做了堆栈部分,但它需要一个明确的硬编码大小,我不想要它。)
这是一个过早优化的问题,真的,但我很好奇。
答案 0 :(得分:0)
'name': 'dosAttack'
使用堆来存储其元素,因此如果您需要将元素放在堆栈中,则无法使用它。
您可以使用std::vector
或原始数组std::array
将元素保留在堆栈中。使用模板可以摆脱界面中的length参数:
T[]