c++ - 在 C++ 中传递固定大小的数组?

标签 c++ performance allocation numerical

基本上我想做这样的事情:

int[3] array_func()
{
    return {1,1,1};
}

int main(int argc,char * argv[])
{
    int[3] point=array_func();
}

但这在 C++ 中似乎不合法。我知道我可以使用 vector ,但由于我知道数组的大小是一个常数,因此似乎很可能会出现性能损失。 如果可以的话,我还想避免使用 new,因为在堆栈上分配东西更容易,也可能会提高性能。

这里有什么解决办法?

最佳答案

使用 C++0x,几乎完成的新 C++ 标准(已在最新的 gcc 和 msvc IIRC 中实现),您可以完全按照您的意愿进行操作!只需使用 std::array 代替 int[3]。

std::array<int, 3> array_func()
{
    return {1,1,1};
}

int main(int argc,char * argv[])
{
    std::array<int, 3> point = array_func();
}

关于c++ - 在 C++ 中传递固定大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1755000/

相关文章:

c++ - 了解 C++ 内存泄漏的好资源/书籍?

javascript - Intranet 站点的积极缓存与 Javascript 文件组合

java - java中没有分配的字符串连接

C++ : Allocation of an array attribute in a class

C:声明一个指针然后将其用作数组,内存分配

c++ - 如何将 std::function 的目标与成员函数的地址进行比较?

c++ - 提升日期/时间 microsec_clock 编译不正确

c++ - 根据 Qt 版本在 .ui 文件中引用 WebKit 或 WebEngine

php - foreach、array_map 与 lambda 和 array_map 与静态函数的性能

java - 如何在 Android 对话框的 XML 布局文件中指定正确的对话框大小?