如果我想声明未知大小的向量,则按顺序将值分配给索引5,索引10,索引1,索引100.它在载体中很容易实现吗?
似乎没有简单的方法.因为如果我初始化一个没有大小的向量,那么我不能通过执行resize()或五个push_back()来首先为它分配内存来访问索引5.但调整大小会清除向量中先前存储的值.我可以通过给它一个大小开始构造向量,但我不知道向量应该有多大.
那么我怎么能不必声明一个固定的大小,仍然可以访问向量中的非连续索引?
(我怀疑阵列会更容易完成这项任务).
调整大小不会清除向量.您可以轻松地执行以下操作:
if (v.size() <= n)
v.resize(n+1);
v[n] = 42;
Run Code Online (Sandbox Code Playgroud)
这将保留向量中的所有值,并添加足够的默认初始值,以便n可以访问索引.
也就是说,如果您不需要所有索引或连续内存,您可能会考虑使用不同的数据结构.
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |