初始化矢量以包含13个元素
Initialize Vectors to Contain 13 Elements
我正在尝试初始化向量,使其在类构造函数中各包含13个元素。
因为在以下情况下,编译器会给出"语法错误:'constant'"。
#include <vector>
using namespace System;
public ref class MyClass {
public :
vector<int> vector1D(13) ; // Syntax error : 'constant'
vector<vector<int>> vector2D(13,vector<int>(13)) ;
};
那么,如何在构造函数中将向量初始化为包含13个元素呢?
非静态成员必须在构造函数定义中初始化,而不是在成员声明中初始化:
class MyClass {
public :
vector<int> vector1D;
vector<vector<int>> vector2D;
MyClass() :
vector1D(13),
vector2D(13,vector<int>(13))
{}
};
您需要在构造函数中执行此操作:
class MyClass {
public :
vector<int> vector1D;
vector< vector<int> > vector2D;
MyClass()
{
vector1D = vector<int>(13);
vector2D = vector< vector<int> > (13, vector<int>(13));
}
};
您不能在构造函数中为13个元素保留空间。使用vector::reserve。
如果MyClass
是托管类,则它不能具有非托管成员。
#using <mscorlib.dll>
#include <vector>
using namespace System;
public ref class MyClass {
public :
cli::array<int>^ vector1D;
cli::array<cli::array<int>^>^ vector2D;
MyClass()
{
Array::Resize(vector1D, 13);
Array::Resize(vector2D, 13);
for each (cli::array<int>^ item in vector2D)
Array::Resize(item, 13);
}
};
相关文章:
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 在C++中,如何通过几种类型从元组中选择多个元素
- 删除列表中的第n个元素
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 在链链表中手动插入第五个元素
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 高级选择排序 - 在一次迭代中搜索两个元素
- 删除列表 c++ 中的最后 3 个元素
- 为什么这个程序没有打印返回的迭代器的正确第二个元素?
- 打印无序映射的第二个元素,即集合
- C++ queue.front();为什么不从第一个元素开始呢?
- 正确unique_ptr 1 个元素分配数组的声明
- 指向数组基址的指针而不是指向第一个元素的指针有什么优点?
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- c++:交换向量中所有元组的第一个和第二个元素
- 初始化矢量以包含13个元素