Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将r、g和b组件存储在c+中的2D数组中+;_C++_Arrays - Fatal编程技术网

C++ 将r、g和b组件存储在c+中的2D数组中+;

C++ 将r、g和b组件存储在c+中的2D数组中+;,c++,arrays,C++,Arrays,比如说,我正在扫描一个三角形列表,每个三角形都有一个固定的r,g,b值(颜色)。我想将每个三角形的r、g、b分量存储在一个2D数组中,然后检索它们。如果屏幕的宽度和高度分别为W和H,则可以声明一个大小为W*H的数组,但是如何在C++中的3个组件(R,G,B)存储? constexpr std::size_t w = /* some constant */; constexpr std::size_t h = /* some constant */; struct Color { int

比如说,我正在扫描一个三角形列表,每个三角形都有一个固定的r,g,b值(颜色)。我想将每个三角形的r、g、b分量存储在一个2D数组中,然后检索它们。如果屏幕的宽度和高度分别为W和H,则可以声明一个大小为W*H的数组,但是如何在C++中的3个组件(R,G,B)存储?
constexpr std::size_t w = /* some constant */;
constexpr std::size_t h = /* some constant */;

struct Color {
    int r, g, b;
};
Color color[w][h];
存储在结构中


存储在结构中

有几种方法可以做到这一点。。。您可以使用位掩码和位标志来存储和检索2d int数组的值,您可以创建一个名为color的自定义结构或类,如下所示:

struct Color
{
    float r;
    float g;
    float b;
};
然后将数组声明为:

Color screenColors[1024][768]; 
您可以始终将1024和768值声明为常量整数,并使用它们来代替硬编码值

如果您想了解有关位屏蔽的更多信息,我建议您阅读:
有几种方法可以做到这一点。。。您可以使用位掩码和位标志来存储和检索2d int数组的值,您可以创建一个名为color的自定义结构或类,如下所示:

struct Color
{
    float r;
    float g;
    float b;
};
然后将数组声明为:

Color screenColors[1024][768]; 
您可以始终将1024和768值声明为常量整数,并使用它们来代替硬编码值

如果您想了解有关位屏蔽的更多信息,我建议您阅读:

您可以使用结构。示例:
structcolor{intr,g,b;};颜色*数组=新颜色[w*h]它可以是结构{r,g,b}的数组,但通常您只需将三个字节打包成一个整数,并将像素的rgb值存储为一个整数。您可以使用结构。示例:
structcolor{intr,g,b;};颜色*数组=新颜色[w*h]它可以是结构{r,g,b}的数组,但通常您只需将三个字节打包成一个整数,并将像素的rgb值存储为一个整数。请注意,当
w
h
为常量时,此代码将起作用,但是标准C++中不支持可变长度数组,注意,当代码<> W//>和 H</C>时,此代码将工作,但标准C++中不支持可变长度数组。