1

尝试创建与头文件和主函数链接的字符串向量函数似乎存在问题。我成功地运行了另一个具有相同主文件、头文件和函数文件的字符串函数。

请记住,我是一名 C++ 初学者,并且我一直在寻找其他帖子的解决方案一个小时。对我的代码的任何建议也受到赞赏。

标题:

#ifndef splitter
#define splitter

#include <iostream>
#include<string>
#include<vector>
#include<cctype>
using std::cout;using std::endl;using std::cin;
using std::vector;
using std::string;

vector<string> split (const string &s, char separator=' ');

#endif

主要的:

#include"functions.h"

#include <iostream>
using std::cout;using std::endl;using std::cin;
#include<string>
using std::string;
#include<vector>
using std::vector;

int main() {

cout << split("test", 'a') << endl;

return 0;
}

功能:

#include "functions.h"

#include <iostream>
#include<string>
#include<vector>
using std::cout;using std::endl;using std::cin;
using std::vector;
using std::string;

vector<string> split(const string &s, char separator) {
    vector<string> thing;
    thing.push_back(s);
    return thing;
}

我的错误信息:

二进制表达式的无效操作数('std::__1::ostream'(又名'basic_ostream')和'vector'(又名'vector, allocator > >'))

4

1 回答 1

2

没有插入 a std::vector<std::string>to的功能cout。因此这条线

cout << split("test", 'a') << endl;

是个问题。将其更改为:

auto res = split("test", 'a');
for ( auto const& item : res )
{
   std::cout << item << " ";
}
std::cout << std::endl;
于 2018-10-12T04:19:59.413 回答