1

我想确认这是否是 Visual Studio 2010 中的错误。如果是,那么可以更改任何设置吗?或者我该如何解决?

#include <iostream>
#include <vector>
#include <algorithm>

std::vector<std::string> test;

test.push_back("hello"); test.push_back("ABC");

std::sort(test.begin(), test.end());

好吧,这是因为我没有包含 std::string header 。

4

2 回答 2

4

我的第一个猜测是您忘记包含标题(可能<string>)。您可以从不同的标头中得到一些最小的前向声明(或类似的东西),让部分代码编译,但其他部分以奇怪的方式中断,导致误导性错误消息。

在快速测试中,这可以与 VS 2008 到 2012 一起编译:

#include <vector>
#include <string>
#include <algorithm>

int main() {

    std::vector<std::string> test;

    test.push_back("hello");
    test.push_back("ABC");

    std::sort(test.begin(), test.end());
}
于 2012-11-29T18:12:36.740 回答
0

它编译得很好......

#include "stdafx.h"
#include <string>
#include <vector>
#include <algorithm>

int _tmain(int argc, _TCHAR* argv[])
{
std::vector<std::string> test;

test.push_back("hello");
test.push_back("ABC");

std::sort(test.begin(), test.end());
return 0;
}
于 2012-11-29T18:10:07.813 回答