C++ 填充向量向量时出错:没有匹配函数来调用std::basic_string::push_back
我正在尝试加速C++的示例5.1,其中我应该创建一个置换索引。因此,我试图将每个旋转(当我首先使用C++ 填充向量向量时出错:没有匹配函数来调用std::basic_string::push_back,c++,vector,C++,Vector,我正在尝试加速C++的示例5.1,其中我应该创建一个置换索引。因此,我试图将每个旋转(当我首先使用cout语句测试时,结果很好)放入自身的向量中 #include <cctype> #include <iostream> #include <string> #include <vector> #include "split.h" using namespace std; void rotate(vector<string> l
cout
语句测试时,结果很好)放入自身的向量中
#include <cctype>
#include <iostream>
#include <string>
#include <vector>
#include "split.h"
using namespace std;
void rotate(vector<string> lineSplit){
// create vector of vectors, length is the amount
// of words. Each vector will contain a rotation
// std::vector<string> rotations(lineSplit.size(), "");
std::vector<string> rotations(lineSplit.size(), "");
for (int i=0; i<lineSplit.size(); i++){
cout << "New Rotation: " << endl;
for (int j=i; j<lineSplit.size(); j++){
rotations[i].push_back(lineSplit[j]);
cout << lineSplit[j] << endl;
}
// cout << "START IN HERE!" << endl;
for (int j=0; j<i; j++){
rotations[i].push_back(lineSplit[j]);
cout << lineSplit[j] << endl;
}
}
}
int main()
{
string line="The quick brown fox";
vector<string> lineSplit = split(line);
cout << "size of lineSplit is: " << lineSplit.size() << endl;
rotate(lineSplit);
}
#包括
#包括
#包括
#包括
#包括“split.h”
使用名称空间std;
空心旋转(矢量线拆分){
//创建向量的向量,长度就是数量
//每个向量将包含一个旋转
//向量旋转(lineSplit.size(),“”);
向量旋转(lineSplit.size(),“”);
对于(int i=0;i
rotations
是字符串的向量,所以rotations[i]
是字符串。lineSplit
是字符串的向量,所以lineString[i]
是字符串。
您只能向后推_
字符串中的字符,而不是字符串中的字符串。
看起来,旋转
应该具有类型向量
main.cpp: In function ‘void rotate(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)’:
main.cpp:23: error: no matching function for call to ‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
/usr/include/c++/4.2.1/bits/basic_string.h:869: note: candidates are: void std::basic_string<_CharT, _Traits, _Alloc>::push_back(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
main.cpp:28: error: no matching function for call to ‘std::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)’
/usr/include/c++/4.2.1/bits/basic_string.h:869: note: candidates are: void std::basic_string<_CharT, _Traits, _Alloc>::push_back(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
rotations[i].push_back(lineSplit[j]);