我的问题类似于this one,但那里没有示例代码,我也没有发现它有用。
我的错误是
调用类的私有构造函数' std :: __ 1 :: __ wrap_iter'
我的问题的一个最小例子可以在下面找到:
#include <iostream>
#include <string>
using namespace std;
int main(){
string g = "this_word";
cout << g << endl;
char temp = g[0];
g.erase(0,1);
cout << g << endl;
g.insert(0,temp); // Compiler seems to dislike this. Why?
cout << g << endl;
return 0;
}
我已经通过两个编译器尝试了这个,并且出现了同样的错误。从标准文档中尽可能多地阅读,但不了解我的错误。
答案 0 :(得分:5)
最好检查std::string::insert()的所有重载签名然后决定使用哪一个。 m4.xlarge
与其中任何一个都不匹配。
要插入g.insert(0,temp);
,您可以传递像
char
或传递索引并统计:
g.insert(g.begin(), temp);