相关疑难解决方法(0)

关于填充矢量的不同方式

我可以想到三种填充方式 std::vector

假设我们有

vector<int> v(100, 0);
Run Code Online (Sandbox Code Playgroud)

然后我想要它(1,1,1).我们可以做的:

v.clear();
v.resize(3, 1);
Run Code Online (Sandbox Code Playgroud)

要么

v = vector<int>(3, 1);
Run Code Online (Sandbox Code Playgroud)

我学到了另一种方法:

vector<int>(3, 1).swap(v); 
Run Code Online (Sandbox Code Playgroud)

第一个问题是:它们中的任何一种都是最好的方法吗?

第二个问题:假设v在主要功能之外被宣布.根据这个答案,存储器将被分配在数据段中.如果我使用第二种或第三种方法,是否会在堆栈上分配内存?

c++ stdvector

5
推荐指数
2
解决办法
297
查看次数

Linux 32位计算机上程序的堆栈分配限制

在C++中,在编译器放弃之前,堆栈段可以增长多少,并说它不能为堆栈分配更多内存.

在linux(fedora)32位机器上使用gcc.

c++ compiler-construction

1
推荐指数
1
解决办法
2033
查看次数

标签 统计

c++ ×2

compiler-construction ×1

stdvector ×1