vector swap 真能释放内存吗?

用下面的代码进行测试,发现vector 的swap 没有把内存释放掉,这是什么原因呢?

环境:centos 7. 4

#include <iostream>

#include <string>

#include <vector>

using namespace std;

 

void func()

{

vector<string> s;

int i = 5000000;

while(i--)

s.push_back(to_string(i));

vector<string>().swap(s);

}

int main()

{

func();

cout <<"done."<<endl;

while(1);

}

swap方法是用来交换两个容器的内容的,不是用来清空内容的,clear方法是清空内容的。