C++ Vector对象默认构造初始化,它的值是多少?谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Vector对象默认构造初始化,它的值是多少?谢谢相关的知识,希望对你有一定的参考价值。

读取数据时可以ivec[0],赋值不可以。赋值用insert push_back

c.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++ Vector对象默认构造初始化,它的值是多少?谢谢的主要内容,如果未能解决你的问题,请参考以下文章

C++构造函数-对象的初始化

C++构造函数-对象的初始化

C++ STL 之 deque

12.2 C++常对象成员

12.2 C++常对象成员

12.2 C++常对象成员