Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++ 如何一次性初始化NTL向量?_C++_C_Ntl - Fatal编程技术网

C++ 如何一次性初始化NTL向量?

C++ 如何一次性初始化NTL向量?,c++,c,ntl,C++,C,Ntl,在C中,我们可以使用以下命令初始化表: int数组[3]={1,2,3} 我们怎么能用NTL向量做这样的事情 我想我已经声明了向量,并且已经设置了它的长度 例如: vec_ZZ向量 vector.SetLength(3) 谢谢您的帮助。请参阅此处的手册 我不认为你可以初始化你想要的方式,因为当你声明 Vec<T> v; vecv; 它创建一个大小为零的空向量。如果我们必须初始化它,那么您必须为它指定另一个向量,或者设置一个长度并向其添加值 vecv是一个对象,您只能指定一个对象。

在C中,我们可以使用以下命令初始化表:

int数组[3]={1,2,3}

我们怎么能用NTL向量做这样的事情

我想我已经声明了向量,并且已经设置了它的长度

例如:

vec_ZZ向量

vector.SetLength(3)

谢谢您的帮助。

请参阅此处的手册

我不认为你可以初始化你想要的方式,因为当你声明

Vec<T> v;
vecv;
它创建一个大小为零的空向量。如果我们必须初始化它,那么您必须为它指定另一个向量,或者设置一个长度并向其添加值


vecv是一个对象,您只能指定一个对象。可能是您继承了Vec类并重载了
=
操作符,以便可以为其分配数组

正如我在前面的回答中提到的,您可以继承Vec类,如下所示

using namespace NTL;

class MyVec : public  Vec<int>
{
public:
        MyVec(std::initializer_list<int> input);
};

MyVec::MyVec(std::initializer_list<int> input)
{
        int n = input.size();
        this->SetLength(n);
        std::vector<int> v;
        v.insert(v.end(), input.begin(), input.end());

        for(int i=0; i<n; i++)
                this->put(i, v[i]);
}

int main()
{
        MyVec v = {1,2,3};

        for(int i=0; i<v.length(); i++)
                cout << v[i] << " ";

        return 0;
}

C还是C++?挑一个。。。标签wiki说NTL是C++库。
g++ -std=c++11 test.cpp -l ntl