C++中的动态数组
Dynamics Array in C++
int len;
cin>>len;
string *test = new string[len];
这段代码工作正常,但我想知道如何分配动态内存,而不必在 Python 中指定数组的长度,例如 list.有什么解决方案可以做到这一点吗?
C++等效的是std::vector
模板,它实现了一个动态数组:
#include <vector>
int main()
{
std::vector<int> v;
assert( v.size() == 0 );
v.push_back( 1 );
v.push_back( 2 );
v.push_back( 3 );
assert( v.size() == 3 );
for( std::size_t i = 0 i < v.size() ; ++i )
std::cout << v[i] << std::endl;
}
1 阿拉伯数字
3
std::vector
具有许多优点:
- 避免由程序员手动管理动态数组的内存。我认为这是最重要的。
- 与其他标准库容器一样,具有许多功能(包括电池:P),并且通过迭代器指定使用标准库算法。 它
- 的效率:作为一个动态数组,向量的数据是连续存储的,所以它是一个非常好的缓存友好容器,在大多数情况下,由于其缓存局部性,它的性能远远优于链表(
std::list
)。
您可以使用
std::vector
或std::list
(或其他一些适当的stl容器)来处理您的内存分配。
相关文章:
- std::向量与传递值的动态数组
- 将数组动态分配到具有指针参数的函数中
- 我可以以某种方式使我的矢量/数组动态更改装置数量吗?
- 使用 new: "potentially uninitialized pointer"将对象数组动态分配给指针
- 为什么C 没有方便的方式来为多维数组动态分配内存
- 如何制作具有动态大小的数组?动态数组的一般用法(可能还有指针)
- c++中的数组动态内存分配
- 多维数组动态分配的内存图
- 如何在 c++ 中使用 2-D 固定数组为 4-D 数组动态分配内存
- C++ 我在数组/动态内存方面遇到了一些问题
- C++ 中从数组动态强制转换
- C++中高维数组动态内存分配的正确方法.
- 从 C++ 结构中包含的指针数组动态分配和访问内存
- 对象数组动态内存分配
- 为二维数组动态分配内存时出错
- 如何将2d数组动态分配给结构
- 为结构数组c++动态分配内存
- 将数组动态添加到多维数组
- 类中的类数组-动态数组(c++)有问题
- 分配对象数组动态冻结