循环中数组的动态分配

Dynamic allocation of array from loop

本文关键字:动态分配 数组 循环      更新时间:2023-10-16

我想在动态数组中分配除数,并将其导出到一个函数中供以后使用。我该怎么做?

int n,i;
cout << "enter your number for check: ";
cin >> n;
for(i = 2; i <= n; i++)
{
    if(n%i == 0)
    {
        cout << i << endl;    //divisor result 
    }
}
STL的标准动态数组容器是std::vector。

下面是代码的一个稍微修改过的版本,它将每个找到的除数附加到intvector(称为divisors)上,然后在程序结束时输出它们,以证明它确实存储了它们。

输出代码要求编译器支持C++11。

#include <iostream>
#include <vector>
int
main()
{
    int n,i;
    std::vector<int> divisors;
    std::cout << "enter your number for check: ";
    std::cin >> n;
    for(i = 2; i <= n; i++)
    {
            if(n%i == 0)
            {
                    std::cout << i << std::endl;    //divisor result
                    divisors.push_back(i);
            }
    }
    std::cout << "Found " << divisors.size() << " divisor(s):";
    for (auto divisor : divisors)
    {
            std::cout << " " << divisor;
    }
    std::cout << std::endl;
}