C++在类中定义vector并初始大小的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++在类中定义vector并初始大小的问题相关的知识,希望对你有一定的参考价值。

有头函数#include<vector>,有using std::vector
我想在类中定义一个int容器,并初始化大小为10
所以我这样操作:vector<int> a(10);
可是

1、数组大小固定,速度较快,通用格式是:数据类型   数组名[ 数组大小 ]。

2、vector 是STL中的容器类,包含多种通用算法,长度可变,使用灵活,但效率稍低,vector是使用 new 和 delete 来管理内存的。

3、array 数组模板 ,在C++11中才支持,通用格式:array<类型名, 元素个数>  数组名。

4、valarray 面向数值计算的数组,在C++11中才支持,支持很多数值数组操作,如求数组总和、最大数、最小数等。

5、new 创建动态数组,动态分配内存,不浪费内存资源,要注意的是,有new,就应该有delete,不然会导致内存泄漏。

参考技术A 你可以在错误列表里选择这个错误,然后按F1键即可在msdn网上查询。关键是,你还没有定义成员,而你这个vector声明是属于类的对象的,你这样等于在没有成员的情况下给这个容器分配了起源,你可以在构造函数里这样初始化它:
base():a(10)...
使用了初始化列表。如果你想让这个容器属于类,你可以在类里把它声明为静态的,但是定义一定要在类外:
vector<int> base::a(10);
当然,也对,vector是动态数组,所以你不用担心关于制定大小这些问题。
参考技术B 在构造函数中对a初始化就成
class base
public:
int n;
club cl;
vector<int> a;

base():a(10)
private:
;
参考技术C 在成员变量的定义里面是不能对成员进行初始化的。
应该写成vector<int> a;就可以了。
事实上,不需要设定其大小,因为vector本来就是动态数组,您可以使用使用push_back等函数直接往a中添加元素,使用a.size()查看大小。
满意请采纳,有问题欢迎追问!

以上是关于C++在类中定义vector并初始大小的问题的主要内容,如果未能解决你的问题,请参考以下文章

c++ 二维vector的初始化及构造

为啥只能在 C++ 类中初始化整数或枚举类型?

C++类中数据成员初始化

在类中初始化向量

c ++:使用模板在类中定义可变长度数组

C++ main 可以在类中并调用派生类吗? [复制]