C++ Vector对象默认构造初始化,它的值是多少?谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Vector对象默认构造初始化,它的值是多少?谢谢相关的知识,希望对你有一定的参考价值。
读取数据时可以ivec[0],赋值不可以。赋值用insert push_backc.assign(beg,end) c.assign(n,elem)
将(beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。
传回索引idx所指的数据,如果idx越界,抛出out_of_range。
c.back()
传回最后一个数据,不检查这个数据是否存在。
c.begin()
传回迭代器中的第一个数据地址。
c.capacity()
返回容器中数据个数。
c.clear()
移除容器中所有数据。
c.empty()
判断容器是否为空。
c.end() //指向迭代器中末端元素的下一个,指向一个不存在元素。
c.erase(pos)// 删除pos位置的数据,传回下一个数据的位置。
c.erase(beg,end)
删除[beg,end)区间的数据,传回下一个数据的位置。
c.front()
传回第一个数据。
get_allocator
使用构造函数返回一个拷贝。
c.insert(pos,elem)//在pos位置插入一个elem拷贝,传回新数据位置
c.insert(pos,n,elem)//在pos位置插入n个elem数据,无返回值
c.insert(pos,beg,end)//在pos位置插入在[beg,end)区间的数据。无返回值
c.max_size()
返回容器中最大数据的数量。
c.pop_back()
删除最后一个数据。
c.push_back(elem)
在尾部加入一个数据。
c.rbegin()
传回一个逆向队列的第一个数据。
c.rend()
传回一个逆向队列的最后一个数据的下一个位置。
c.resize(num)
重新指定队列的长度。
c.reserve()
保留适当的容量。
c.size()
返回容器中实际数据的个数。 参考技术A ivec还没有分配元素存储空间。你这样用是小标越界了。如果你把ivec[0] = 42; 换成 ivec.at(0) = 42;的话会得到一个异常。
一般vector这样用:
ivec.push_back(42) ; 把42放在ivec中的元素序列的后面,ivec会根据需要自动增加存储。
有最新的VC++编译器的话,可以偷偷懒, 这样写:
vector<int> ivec 42 ;本回答被提问者采纳 参考技术B 不合法,用push_back().
C++构造函数-对象的初始化
1 构造函数
1.1 对象的初始化
在定义一个对象的时候,常常需要作某些初始化的工作,例如,对成员变量赋值。如果一个成员变量未赋值,那么,它的值是不可预知的(是系统随机分配的一个垃圾值)。因为系统为它分配内存的时候,保留了这些存储单元的原始数据,这就成为了这些成员变量的初始值。
定义一个对象的时候,应该给对象设置一个初始的值。让一个对象,有一个可以明确知道的状态。
应当注意:类的成员变量是不能在声明类时初始化的,下面的写法是错误的:
注意:类中的static类型的const成员可以在定义的时候初始化,在后续的章节,我们有介绍const、static类型成员的初始化。
因为类并不是一个实体,而是一种抽象类型,并不占用存储空间,显然,没有空间存放数据。所以,定义类的时候,不可以给类的成员变量赋值。上面的代码是错误的代码。
如果一个类中所有的成员都是公有(public类型)的,那么,可以在定义对象的时候对成员变量进行初始化,如下:
程序运行结果如下:
可以看到,定义stud对象的时候,给对象进行赋值,如下:
student stud = {"wkf", "www.mylinux.vip", 13926572996};
此时,按顺序给student类对象的成员变量赋值,等效于:
stud.name = "wkf";
stud.addr = "www.mylinux.vip";
stud.number = 13926572996;
这种情况和C语言的struct结构体变量的初始化是一样的,在一个花括号内顺序列出各个公用成员变量的值,两个值之间使用逗号分隔。但是,如果成员变量是私有的,或者类中有private或protected的成员,就不能使用这种方法来初始化。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于C++ Vector对象默认构造初始化,它的值是多少?谢谢的主要内容,如果未能解决你的问题,请参考以下文章