查找 2D 矢量的大小
Finding the size of a 2D vector
我有一个关于查找 2D 矢量大小的问题。我的简单问题是,我有一个向量,它存储三个"形状",每个形状都有随机数量的命中点(存储为笛卡尔坐标{x,y,z}),每个命中点都有一个随机颜色(存储为 RGB)我想找出每个形状有多少个命中点。如果我这样做:
VectorOfShapes.size()
我明白答案
3
这是之前提出的类似问题这里。但这对我没有帮助。他们的解决方案是
VectorOfShapes[1].size()
我试过了,我得到以下错误"错误 C2228:'.size'的左侧必须有类/结构/联合".这回答得很好(点击链接)。它仍然对我没有帮助(或者我很愚蠢)...有什么想法吗?
----------新增信息
class World {
public:
vector<Flux*> VectorOfShapes;
void
containers(int obnum, Ray reflect, RGBColor Ll);
void
build(void);
void
add_vectorshape(Flux* vectorshape_ptr)
private:
void
delete_VectorOfShapes
}
inline void
World::add_vectorshape(Flux* vectorshape_ptr){
VectorOfShapes.push_back(vectorshape_ptr);
}
void
World::containers(int obnum, Ray reflect, RGBColor Ll)
{
vectorOfShapes[obnum]->push(reflect);
VectorOfShapes[obnum]->push(Ll);
int sizers = VectorOfShapes[0].size(); //this is where the code is giving me errors
}
void
World::build(void) {
Flux* vectorshape_ptr1 = new Flux;
add_vectorshape(vectorshape_ptr1);
Flux* vectorshape_ptr2 = new Flux;
add_vectorshape(vectorshape_ptr2);
Flux* vectorshape_ptr3 = new Flux;
add_vectorshape(vectorshape_ptr3);
}
void
World::delete_VectorOfShapes(void) {
int num_VectorOfShapes = VectorOfShapes.size();
for (int j = 0; j < num_VectorOfShapes; j++) {
delete VectorOfShapes[j];
VectorOfShapes[j] = NULL;
}
VectorOfShapes.erase (VectorOfShapes.begin(), VectorOfShapes.end());
}
class Flux{
public:
std::vector<Ray> rays;
std::vector<RGBColor> L;
void push(Ray ray);
void push(RGBColor Ls) ;
};
inline void
Flux::push(Ray ray) {
rays.push_back(ray);
}
inline void
Flux::push(RGBColor Ls){
L.push_back(Ls);
}
基于提供fluxs
声明的注释:
vector<Flux*> fluxs;
fluxs
是指针的向量,意思是:
fluxs[i]
返回一个Flux*
,而不是一个Flux
所以你必须使用->
,就像你在发布的代码中所做的那样设置属性。如果没有Flux
的定义,我假设有一个获取hitpoints
的getter,并且如前所述,fluxs
中正好有三个元素,因此要获得fluxs
生命值的总和,您只需:
int total_hitpoints = fluxs[0]->get_hitpoints() +
fluxs[1]->get_hitpoints() +
fluxs[2]->get_hitpoints();
编辑:
如果命中点计数是Flux::rays
(或Flux::L
)中的元素数,则:
int total_hitpoints = fluxs[0]->rays.size() +
fluxs[1]->rays.size() +
fluxs[2]->rays.size();
相关文章:
- 如何查找 2d 标准::数组中的列数
- 如何在C++中的2d哈希表中查找值
- Unordered_map使用 2D 点进行查找
- 查找 2D 向量的位置,该向量是类C++的一个元素
- 2D 数组在 CPP 中查找行的总和
- C++ 在 2D 数组对角线中查找最低
- 查找数字是否单独存在于 2D 网格中
- C++ 在 2D std::vector 中查找最大值的位置
- 在2D字符串数组中查找字符串数
- 在2D表格中查找匹配项
- 找到一种正确"(快速而准确)的方式来查找检查 2D 游戏碰撞的内容。C++
- 用于多个目标的2D平铺贴图的路径查找
- 查找最大值并删除 2D 数组中的该行.C++
- 在 2D 标准::矢量<矢量中查找唯一值的有效方法<double>>
- 如何在 C++ 中查找 2D 数组大小
- 如何在C++中从 2D 数组中查找列平均值
- C++查找最小位置,在 2D 数组中进行排序和交换
- 查找 2D 矢量的大小
- 在2D数组中查找平均值:FIXED
- 2d查找重复元素/获取索引位置并计数重复项