我在使用STL C ++的shrink_to_fit()函数时遇到问题。问题是我使用的是哪个,编译器在带有MinGW的Eclipse Luna(32位)上给出错误“方法'shrink_to_fit'无法解决”,但同一程序在Dev C ++中可以正常工作。
编译器不建议在使用dot(。)之后使用rinkle_to_fit():
原始代码:
#include <iostream>
#include <vector>
using namespace std;
int main(void) {
vector<int> v(128);
cout << "Initial capacity = " << v.capacity() << endl;
v.resize(25);
cout << "Capacity after resize = " << v.capacity() << endl;
v.shrink_to_fit();
cout << "Capacity after shrink_to_fit = " << v.capacity() << endl;
return 0;
}
请让我知道这是我的错还是IDE的错。
P.S。我正在使用C ++ 14。
对我来说很好。尝试“手工”编译以查找是否与ide有关:
g++ foo.cpp -o foo
./foo
对我来说很好(带有-std = c ++ 11标志,并且来自https://nuwen.net/mingw.html#install的MinGW发行版)在
用于C / C ++开发人员的Eclipse IDE,版本:2019-09 R(4.13.0)Build ID:20190917-1200操作系统:Windows 10,v.10.0,x86_64 / win32Java版本:13.0.1
以及在Linux上(带有-std = c ++ 11标志和GCC 7.4.0编译器)。您的IDE,编译器(带有正确的标志)或STL实现可能存在问题。我认为不可能有第四个理由。