有效地将所有数组值设置为零

时间:2015-04-18 21:15:18

标签: c++

我有一段时间没有写过C ++代码。我需要以有效的方式将此程序中的所有值设置为0。

#include<iostream>
int main(){
    using namespace std;
    double MainTrianglePoint1[2];
    double MainTrianglePoint2[2];
    double MainTrianglePoint3[2];
    std::cout << "Point 1 X:" << MainTrianglePoint1[2] << " Y:" << MainTrianglePoint1[1];
    std::cin.get();
return 0;
}

我是否可以在所有MainTrianglePoint数组上执行循环,以便将它们的所有值都设置为0?

5 个答案:

答案 0 :(得分:2)

使用c ++ 03,您可以直接在其声明中初始化数组:

double MainTrianglePoint1[2] = {0,0};

使用c ++ 11,您可以删除=符号:

double MainTrianglePoint1[2] {0,0};

答案 1 :(得分:1)

我认为不使用循环,你只需用零填充内存:

std::fill(std::begin(MainTrianglePoint1), std::end(MainTrianglePoint1), 0);
std::fill(std::begin(MainTrianglePoint2), std::end(MainTrianglePoint2), 0);
std::fill(std::begin(MainTrianglePoint3), std::end(MainTrianglePoint3), 0);

答案 2 :(得分:0)

您可以使用for循环来执行此操作。

for(int i = 0; i<2; i++)
{
  MainTrianglePoint1[i] = 0;
  MainTrianglePoint2[i] = 0;
  MainTrianglePoint2[i] = 0;
}

这将循环遍历每个数组索引,最大为max,并将索引处的值设置为0。

答案 3 :(得分:0)

可能您希望创建一个未命名的结构,并将值初始化为其默认值。 Demo

#include<iostream>
using namespace std;
struct  {

    double Point1[2];
    double Point2[2];
    double Point3[2];
} MainTriangle = {};
int main()
{
    std::cout << "Point 1 X:" << MainTriangle.Point1[2] << " Y:" << MainTriangle.Point1[1];
    std::cin.get();

}

答案 4 :(得分:0)

在C ++ 11中,您可以使用{}轻松完成此任务。请考虑以下代码:

#include <iostream>
using namespace std;
int main () {

        double n[10];
        for (int i = 0; i < 10; ++i) {
                cout << n[i] << endl;
        }

        double k[10] {};

        cout << "-" << endl;
        for (int i = 0; i < 10; ++i) {
                cout << k[i] << endl;
        }
        return 0;
}

example