我遇到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。
答案 0 :(得分:1)
它对我来说很好(带有-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 / win32 Java版本:13.0.1
以及在Linux上(带有-std = c ++ 11标志和GCC 7.4.0编译器)。您的IDE,编译器(带有正确的标志)或STL实现可能存在问题。我认为不可能有第四个理由。
答案 1 :(得分:0)
对我来说很好。 尝试“手动”编译以查找是否与ide有关:
g++ foo.cpp -o foo
./foo