C++ 如何一次性初始化NTL向量?
在C中,我们可以使用以下命令初始化表: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是一个对象,您只能指定一个对象。
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