我正在学习C++阅读Stroustrup的书,在我看来,这个主题不是很清楚(数组)。从我所了解C++有(如德尔福)两种阵列:动态和静态数组
静态数组被声明如下
int test[3] = {10,487,-22};
动态数组被称为矢量
std::vector<int> a;
a.push_back(10);
a.push_back(487);
a.push_back(-22);
我已经看到有关这方面的答案(并且里面有很多线条和概念),但他们没有向我阐明这个概念。
从我所了解vector
小号占用更多的内存,但他们可以改变它们的大小(动态,其实)。数组在编译时具有固定的大小。
在章节Stroustrup说,矢量是安全的,而数组不是,但没有解释原因。我确实相信他,但为什么?记忆的位置是否与安全有关? (堆/栈)
我想知道为什么我使用载体,如果他们是安全的。
这是一个非常广泛的讨论,如果你问使用std :: vector,数组和指针的优点和陷阱。 –
在我的代码中,我将使用向量总是和数组,只有当我发现有人在旧版本中使用它们时。但我想知道为什么 –
std :: vector是一个很好的机器,已经接管了以前用数组解决的大多数任务。你会想研究std :: vector是如何设计的以及为什么。这包括资源管理(3/5规则)以及算法行为。 –