我试图将 argv 作为字符串保存到 vector 中,但我不断收到错误消息:see reference to function template instantiation 'std::vector<_Ty>::vector<_TCHAR*[]>(_Iter,_Iter)' being compiled
我试过 Save argv to vector or string 但它不起作用
我正在使用 Microsoft Visual Studio 2010。
这是我的代码:
#include "stdafx.h"
#include <string>
#include <vector>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<std::string> allArgs(argv + 1, argv + argc);
return 0;
}
最佳答案
问题是 std::string
没有 _TCHAR*
类型的构造函数,因此您无法从 _TCHAR*
数组生成字符串 vector 。
尝试使用@NathanOliver 所说的 main: int main(int argc, char *argv[])
的“正常”版本。
或者切换到 std::wstring
。
注意:如果没有在启用 unicode 的情况下编译,那么 _TCHAR*
可能等同于 char *
并且代码不会引发任何编译器错误。
关于C++ 如何将 argv 作为字符串保存到 vector ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37710597/