我想确认这是否是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标题。
答案 0 :(得分: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());
}
答案 1 :(得分: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;
}