静态向量字符串对类成员函数

时间:2019-06-10 19:05:27

标签: c++

  

编写一个功能零件表,该零件表提供了将至少两个元素的列表(数组)划分为两个非空部分的所有方法。

据我了解,该函数应该产生原始数组的线性分区(使用术语作为数学函数)。

我想我分别理解函数的每种类型,但是我正在努力将它们全部组合在一起。

(我有6个月的C ++经验,没有其他语言。这是我用来提高我的编码技能的代码战的练习)

我已经编写了函数代码,直到开始测试为止,但是用表达问题的方式,我不理解如何实例化类类型。我已经从类说明和cplusplus.com中单独查看了静态,向量,对和常量。

我已经知道程序可以编译,但不会完成main()。我感觉好像缺少了一些重要的信息,并且感谢您对理解程序目标的任何帮助。

#include <iostream>
#include <vector>
class PartList
{
public:
    static std::vector<std::pair <std::string, std::string>> partlist(std::vector<std::string> &arr);
};

///The above is what I have to work with///

int main(){
    std::vector<std::string> tester = {"I", "Love", "To", "Discrete"};
    PartList::partlist(tester);
}

std::vector<std::pair<std::string,std::string>> PartList::partlist(std::vector<std::string> &arr){
    std::vector<std::pair<std::string,std::string>> output;
    std::vector<std::pair<std::string,std::string>>::iterator bigIt = output.begin();
    std::vector<std::string>::iterator myIt;
    for(std::vector<std::string>::iterator secIt = arr.begin();
        secIt != arr.end(); secIt++){
        myIt = arr.begin();
        while(myIt <= secIt){
            bigIt->first += *myIt;
            myIt++;
        }
        while((myIt > secIt) && myIt != arr.end()){
            bigIt->second += *myIt;
            myIt++;
        }
    }
    return output;
}

预期:

对于set {std::string a, std::string b, std::string c, std::string d}

应该导致{a, bcd}, {ab,cd}, {abc,d}

结果:

没事

1 个答案:

答案 0 :(得分:1)

正如约翰在评论中所说。您实际上并没有I 做什么。在I循环的开始,您需要使用f将新项目附加到output。然后,不使用迭代器,只需使用for

引用该项目

代码:

output