C ++简单树遍历并在向量的行中存储行。错误:没有用于调用'std :: vector <int> :: push_back(std :: vector <int>&amp;)'的匹配函数

时间:2017-04-20 20:31:09

标签: c++ vector

/*performing simple tree traversal in C++ and copying tree levels node data to vector<vector<int>> rows:
Getting error: no matching function for call to 'std::vector<int>::push_back(std::vector<int>&)'
*/

class Sample {
public:
    vector<vector<int>> zigzagLevelOrder(TreeNode* root) 
    {

        vector<vector<int>> result;
        zigzagLevelOrder(root, result, 0);
        return result;

    }

    void zigzagLevelOrder(TreeNode* root, vector<vector<int>>&result, int level)
    {
        if(level == result.size())
        {
            vector<int> v;
            v.push_back(root->val);    
            result[level].push_back(v);
        }
        else
        {
            result[level].push_back(root->val);
        }

        zigzagLevelOrder(root->left, result, level + 1);
        zigzagLevelOrder(root->right, result, level + 1);

    }
};

2 个答案:

答案 0 :(得分:1)

String result = Arrays.stream(inputString.split("")).reduce("", (accumlator, letter) -> accumlator + " " + myMap.get(letter)); System.out.println(result); //" apple spinach dog fish goat" - result[level].push_back(v);是对result[level]的引用(虽然索引超出范围),因此应为vector< int >

答案 1 :(得分:0)

感谢大家的帮助。问题解决了,这是工作解决方案。任何关于优化这一点的评论都是值得欢迎的。

Start of  log_console
Test message to console  =======
After test message to console