struct A
{
A():ID(2){}
int ID;
}
struct B
{
B(): iB(); //这里不知道怎么用A的默认构造函数初始化一个100*100的iB
vector< vector< A& > > iB;
}
实践太少了,谢谢帮助。
我实践的太少没经验,你们这么说我也觉得不好。改成这样行吗?
struct A
{
A():ID(2){}
int ID;
};
struct B
{
B(): iB(100, vector < A >(100) ){}
vector< vector< A > > iB;
};
我明白了,这里用iB(100, vector < A >(100) )是调用了vector的一个构造函数,是复制100个 vector < A >(100) 到iB中,所以iB的元素是包含100个元素的vector<A>类型。
这样简单些。不用在构造函数体内写东西。
谢谢各位的帮助。
参考资料:原创 + ISO/IEC 14882:2003
我改了一下,能帮我看看可以吗?谢谢
追答B(): iB(100, vector (100) ){}// 不是分号;
结构体用 分号 结束
顺便说一下,不建议这样用,很麻烦,你可以先想想怎么输出
struct A
{
A():ID(2){}
int ID;
};
ostream& operator(10) ){};
vector > iB;
};
int main()
{
B b;
vector >::iterator iter;
vector::iterator it;
for(iter=b.iB.begin();iter!=b.iB.end();++iter)
{
for(it=iter->begin();it!=iter->end();++it)
cout<<*it<<" ";
cout<<endl;
}
}
c++怎么初始化一个装引用的二维vector呢?
对于vector等容器的批量元素非默认值初始化,C++0x提供了std::initializer_list参数的构造函数,不过对于现行的C++03,要是元素能默认初始化,可以resize;否则只能老老实实的循环插入了。这里每个vector<A>都默认初始化为空向量,不符合要求……因为A可以默认初始化,所以构造100元素的二维向量后直接对每个...
C++ vector<vector<int>> 如何初始化
vector<int> arr (初始个数,赋值);vector<int> arr(5,0);扩张时resize即可。
C++:vector对象的初始化
C++中的vector类是一个容器,专门用于存储同类型的对象,每个对象都有唯一的索引。它实际上是编译器根据模板生成的,模板是一种编译时的抽象,实例化时会指定生成的具体类型。初始化vector对象的方式与string相似,常见的有拷贝初始化和列表初始化。拷贝初始化通过圆括号传递,如v1,它的容量被初始化。而...
c++中vector<vector<T>>怎么初始化vector<T>?
比如初始化2×3的二维vector:vector<vector<int>> v2;for(int i=0; i<2; i++)v2.push_back(vector<int>(3));v2[1][2] = 123;cout << v2[1][2];
c++初始化vector数组?
这是c++ vector初始化的一种方法,两个参数就是两个指针,vector的内容就是这两个指针之间的内容。这里第一个指针是数组的开始,第二个,sizeof(array)\/sizeof(int)是数组元素个数,加上array就是数组的结尾,意思就是初始化一个vector,把这个数组里的这么多元素都放进里面。
c++ vector初始化的问题
vector <vector<char>> vec;for(int i= 0; i < 行数;i++){ vector<char> vecTmp;for(int j = 0;j <列数;j++){ vecTmp.push_back(二维数组[i][j]);} vec.push_back(vecTmp);}
C++ STL中 Vector的基本用法
对于二维vector的创建,可以通过`std::vector<std::vector> nums(m, std::vector(n));`直接定义一个m*n的二维vector。若需动态创建,可以使用`nums.resize(m, std::vector(n));`或`nums.resize(m, std::vector(n, 0));`初始化为m*n的二维数组,所有元素默认为0。获取二维数组的行数和...
请教关于C++初始化vector的问题
\/\/要几个字符串你自己定 static cosnt vector<string> strVect(n,"这里写你要的字符串");这样可以加入几个字符串,当然这些字符串都是一样的,要是你想初始化不一样的,我就不知道怎么办了 因为你要的这个vector是const 必须定义时候初始化。同求高人指点能否初始化元素不一样的const的vector ...
C++语言中关于vector的初始化问题
代码 vector<int> ivec {10, 11, 12}用到了c++11的新特性,初始化列表,initialize_list 而vistual studio 2012并不支持c++11这一特性。代码 vector<int> ivec(10,-1);正确,是因为 vector 存在这个版本的构造函数 explicit vector (size_type n, const value_type& val = value_type(), ...
C++ Vector对象默认构造初始化,它的值是多少?谢谢
ivec还没有分配元素存储空间。你这样用是小标越界了。如果你把ivec[0] = 42; 换成 ivec.at(0) = 42;的话会得到一个异常。一般vector这样用:ivec.push_back(42) ; 把42放在ivec中的元素序列的后面,ivec会根据需要自动增加存储。有最新的VC++编译器的话,可以偷偷懒, 这样写:vector...