C++将数组创建与函数分开的问题
C++ issue separating array creation from function
一段时间后,我开始使用c ++进行一些directx编程,但我遇到了一个看似愚蠢的问题。我有一个缓冲区,当前正在使用内联创建的数组:
Vertex vertices[]={{...},{...},...};
此数组用作创建缓冲区的资源。我遇到的问题是我想从函数中检索这个数组,因为我想创建不同的结构,这些结构不是在创建缓冲区的方法中硬编码的。但是,如果我做类似 Vertex* vertices=getDefaultVertices() 的事情,其中 getDefaultVertices() 的定义是 Vertex* getDefaultVertices() 并返回我上面的结构将不起作用。现在,通过环顾四周,我发现问题的一部分是您无法在 c++ 中创建本地函数数组并返回对它的引用。我的问题是我应该怎么做才能检索这个数组?我唯一能想到的就是使用带有常量的类,但我想知道一个解决方案,如果可能的话,它使用函数来检索数组。
呢:
vector<Vertex>& defaultVertices()
{
static vector<Vertex> defVtx;
if(defVtx.size() == 0)
{
// declare your vertices one after the other:
defVtx.push_back(Vertex(0.1f,0.2f,0.3f)); // first Vertex
defVtx.push_back(Vertex(0.1f,0.2f,0.3f)); // second Vertex
}
return defVtx;
}
这样你就有一个顶点向量,它将始终相同,它将在内存中创建一次。 我不知道这在多任务处理方面有多安全(很可能在第一次调用和同时从不同线程调用后续调用时可能存在赛车条件)。
我知道这不是一个好的解决方案,但它现在应该适合你的需求......
相关文章:
- Visual Studio中的函数声明和函数定义问题
- C++quit()函数中可能存在作用域问题
- 类似于strcat()的函数出现问题
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 类C++中的函数问题(LNK2019和LNK1120错误)
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 关于简单C++函数(is_palindrome)的逻辑的问题
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- constexpr构造函数需要常量成员函数时出现问题
- 添加存储在向量中的大整数的函数出现问题
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 关于 c++ 函数中指针赋值的简单问题
- 如何在标头中声明(或定义)函数的问题
- 有关 c++ 构造函数的问题
- 模板类转换问题 - 无法推断调用的函数
- 从 C++ 中的函数返回数组地址问题
- 关于复制构造函数的一个棘手问题
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题