小编Hil*_*ton的帖子

在同一个指针上多次使用"new"

当我做类似的事情时会发生什么

   int * ptr = new int; 
   *ptr = 5;
   // ... do some stuff here
   ptr = new int; 
   // ... reuse ptr to do some other stuff
Run Code Online (Sandbox Code Playgroud)

而不是

   int * ptr1 = new int; 
   *ptr1 = 5;
   // ... do some stuff here
   delete ptr1;
   int * ptr2 = new int; 
   // ... use ptr2 now
Run Code Online (Sandbox Code Playgroud)

????

在硬件级别发生同样的事情吗?换句话说,在第一种情况下,是否ptr = new int;继续从其先前的指针/值对继续,以及那些旧值会发生什么?它们是否被替换,它们只是漂浮在某个地方等等?

c++

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

是否有可能弄清楚std :: vector扩展其数组大小的频率?

我正在乱搞,试图弄清楚如何std::vector管理其底层数组的大小.我知道它会进行某种调整,例如,当调用底层数组已满时尝试添加元素时,创建一个大小为前一个数组大小两倍的新数组并将旧值复制到其中(或类似的东西).

所以我就这样做了

#include <iostream>
#include <vector>

int main()
{

   std::vector<int> myVec; 
   for (int i = 1; i < 10000; ++i)
   {
      myVec.push_back(i);
      std::cout << i << " elements in vector; size of vector is " << sizeof(myVec) << " bytes." << std::endl;
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印出来的

1 elements in vector; size of vector is 28 bytes.
2 elements in vector; size of vector is 28 bytes.
3 elements in vector; size of vector is 28 bytes.
4 …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

标签 统计

c++ ×2

vector ×1