如何在不进行硬编码的情况下获取C ++中类数组的长度?

维克拉姆·辛格(Vikram Singh)

我在C ++中有一个类数组。我已经这样定义它:

Student* pliststudent = new Student[2]{ 3,5 };

我知道当我们将其分配给时,类数组会衰减为一个指针Student* pliststudent

不对它进行硬编码就很难提取它的长度。

我实现了代码,因此未对其进行硬编码(使用朋友功能)。但我认为,必须存在更好的解决方案。

以下是我的完整代码:

    class Student
    {
    private:
        int marks;
        int counter=0;
    public:
        Student(int marks) : marks(marks)
        {}

        int FinalMarks()
        {
            marks *=2;
            return marks;
        }

        friend int Length(Student ob1, Student ob2);
    };

    int Length(Student ob1, Student ob2)
    {
        int i = ++ob1.counter + ++ob2.counter;
        return i;
    }

    int main()
    {
        Student* pliststudent = new Student[2]{ 3,5 };
        //int length = sizeof(*pliststudent) / sizeof(pliststudent[0]); //This does not work.

        int length = Length(pliststudent[0], pliststudent[1]);
        for (int i = 0; i < length; i++)
        {
            cout << (pliststudent+i)->FinalMarks() << endl;
        }
        return 0;
    }

有更好的解决方案吗?我不想对学生类数组的大小进行硬编码。

迈尔斯·布德奈克(Miles Budnek)

您无法从指向数组第一个元素的指针获取数组的长度。当数组衰减到指针时,该信息将丢失。

您需要将长度信息保存在某个地方,您自己可以:

int length = 2;
Student* pliststudent = new Student[length]{ 3,5 };

或使用跟踪您长度的容器:

std::vector<Student> students{3, 5};
// students.size() returns the number of Student objects in the vector

现场演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

如何在不进行字符串比较的情况下获取类函数的MethodInfo

来自分类Dev

如何在Codeigniter中不进行foreach的情况下将数据获取到视图中?

来自分类Dev

如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

来自分类Dev

如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

来自分类Dev

如何在不进行硬编码的情况下获取方法名?

来自分类Dev

如何在不进行迭代的情况下从数组中访问特定元素?

来自分类Dev

如何在不进行类型转换的情况下将flatten实现为数组的扩展?

来自分类Dev

如何在不进行处理的情况下使用DLLImport将数组传递给Fortran DLL?

来自分类Dev

如何在不进行外部缓存的情况下将“ this”传递到Promise中?

来自分类Dev

如何在不进行硬编码的情况下使用多个discord bot帐户登录?

来自分类Dev

Python / Matplotlib-如何在不进行硬编码的情况下计算/绘制导数?

来自分类Dev

如何在没有groupby的情况下进行运行长度编码

来自分类Dev

如何在不进行迭代的情况下基于成对的开始/结束索引定义numpy数组的多个切片?

来自分类Dev

如何在不进行NSData转换的情况下将url图像传递给ios中的按钮

来自分类Dev

如何在不进行替换或解释的情况下将字符串文字存储到变量中?

来自分类Dev

在Rust中,我可以在不对值进行硬编码的情况下实例化const数组吗?编译时评估?

来自分类Dev

在同一个类中定义的这两个函数如何在不进行前向声明的情况下彼此调用?

来自分类Dev

如何在不进行硬编码的情况下删除文件夹上的所有拒绝权限?

来自分类Dev

在不进行包装类的情况下,如何封送Jaxb元素列表?

来自分类Dev

在不进行编码的情况下将字符串与字节数组之间来回转换

来自分类Dev

是否可以在不对路径进行硬编码的情况下从Visual Studio 2019中的Microsoft C ++工具集中引用link.exe?

来自分类Dev

如何在不进行抗锯齿的情况下绘制一条像素宽度为1像素且长度为很多像素的线?

来自分类Dev

如何在不使用硬编码列的情况下在LINQ中透视数据

来自分类Dev

如何在javascript中获取json编码数组的长度?

来自分类Dev

如何在javascript中获取json编码数组的长度?

来自分类Dev

如何在不将单独的帧图像写入磁盘的情况下,对C ++程序中生成的多个图像中的视频进行编码?

来自分类Dev

是否可以在不对列表位置进行硬编码的情况下识别json词典列表中的项目?

Related 相关文章

  1. 1

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  2. 2

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  3. 3

    如何在不进行字符串比较的情况下获取类函数的MethodInfo

  4. 4

    如何在Codeigniter中不进行foreach的情况下将数据获取到视图中?

  5. 5

    如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

  6. 6

    如何在不对ID进行硬编码的情况下访问嵌套在ID中的JSON属性?

  7. 7

    如何在不进行硬编码的情况下获取方法名?

  8. 8

    如何在不进行迭代的情况下从数组中访问特定元素?

  9. 9

    如何在不进行类型转换的情况下将flatten实现为数组的扩展?

  10. 10

    如何在不进行处理的情况下使用DLLImport将数组传递给Fortran DLL?

  11. 11

    如何在不进行外部缓存的情况下将“ this”传递到Promise中?

  12. 12

    如何在不进行硬编码的情况下使用多个discord bot帐户登录?

  13. 13

    Python / Matplotlib-如何在不进行硬编码的情况下计算/绘制导数?

  14. 14

    如何在没有groupby的情况下进行运行长度编码

  15. 15

    如何在不进行迭代的情况下基于成对的开始/结束索引定义numpy数组的多个切片?

  16. 16

    如何在不进行NSData转换的情况下将url图像传递给ios中的按钮

  17. 17

    如何在不进行替换或解释的情况下将字符串文字存储到变量中?

  18. 18

    在Rust中,我可以在不对值进行硬编码的情况下实例化const数组吗?编译时评估?

  19. 19

    在同一个类中定义的这两个函数如何在不进行前向声明的情况下彼此调用?

  20. 20

    如何在不进行硬编码的情况下删除文件夹上的所有拒绝权限?

  21. 21

    在不进行包装类的情况下,如何封送Jaxb元素列表?

  22. 22

    在不进行编码的情况下将字符串与字节数组之间来回转换

  23. 23

    是否可以在不对路径进行硬编码的情况下从Visual Studio 2019中的Microsoft C ++工具集中引用link.exe?

  24. 24

    如何在不进行抗锯齿的情况下绘制一条像素宽度为1像素且长度为很多像素的线?

  25. 25

    如何在不使用硬编码列的情况下在LINQ中透视数据

  26. 26

    如何在javascript中获取json编码数组的长度?

  27. 27

    如何在javascript中获取json编码数组的长度?

  28. 28

    如何在不将单独的帧图像写入磁盘的情况下,对C ++程序中生成的多个图像中的视频进行编码?

  29. 29

    是否可以在不对列表位置进行硬编码的情况下识别json词典列表中的项目?

热门标签

归档