我正在尝试将
这是我要使用的代码:
#include <vector>
#include <iostream>
#include <string>
int main()
{
std::vector<std::string> strArray;
std::vector<int>::const_iterator y;
std::string iString = "";
while (iString != "quit")
{
std::cout << "Enter string: ";
std::cin >> iString;
iString.push_back(iString);
}
std::cout << "Your list is:\n";
for (y= iString.begin(); y <= iString.end(); y++)
{
std::cout << (*y)
<< std::endl;
}
std::cout << std::endl;
return 0;
}
这是错误消息:
check10a.cpp: In function ‘int main()’:
check10a.cpp:57:32: error: no matching function for call to ‘std::basic_string<char>::push_back(std::string&)’
iString.push_back(iString);
我真的很感谢这里的指针...
答案 0 :(得分:3)
编译器会告诉您,带有std::basic_string<char>::push_back
参数的std::string
不存在。
使用operator+=
:iString += iString
。
您可能想要strArray.push_back(iString)
。
答案 1 :(得分:1)
仅仅为了其他可能会发现此问题的人的利益-这是我的代码中的另一个错误,实际上我不了解围绕迭代器的必要概念:
此行:
this.gridApi.sizeColumnsToFit();
实际上必须是:
std::vector<int>::const_iterator y;
如果我理解这一权利-这是因为被声明的迭代器需要与集合类型兼容,因此它正在迭代...