C++ 过载操作员<&书信电报;对于指针的向量结构?

C++ 过载操作员<&书信电报;对于指针的向量结构?,c++,vector,struct,operator-overloading,C++,Vector,Struct,Operator Overloading,我目前正在尝试创建一个重载操作符你的操作符中有很多错误你可以做很多事情来修复你的代码示例-更好的命名约定将是一个重要的开始 你的代码不工作的原因是因为你的操作员你有没有试过读取编译器错误?我修复了编译器错误和(大概)打字错误,它在我的机器上工作。嗯,我假设它按预期工作。元素中的项是一个问题,它应该是for(auto-Item:elements->keys)@JakeFreeman•elements是一个指针,所以for(auto-Item:elements->keys)@Eljay修复了你是对的

我目前正在尝试创建一个
重载操作符你的操作符中有很多错误你可以做很多事情来修复你的代码示例-更好的命名约定将是一个重要的开始


你的代码不工作的原因是因为你的操作员你有没有试过读取编译器错误?我修复了编译器错误和(大概)打字错误,它在我的机器上工作。嗯,我假设它按预期工作。元素中的项是一个问题,它应该是
for(auto-Item:elements->keys)
@JakeFreeman•elements是一个指针,所以
for(auto-Item:elements->keys)
@Eljay修复了你是对的,没有注意到这一点
// This file is a "Hello, world!" in C++ language by GCC for wandbox.
#include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>

struct element
{
    std::vector<int> keys;
    std::string item;

    element(std::vector <int> key, std::string item)
    {
        keys = key;
        this->item = item;        
    }

};


inline std::stream operator << (std::ostream &stream, const std::vector<element*> _element)
{
    for (auto elements: _element)
    {
        for(auto item : elements)
        {
            std::stream << item.key << " "
        }
    }

}


int main()
{
    std::cout << "Hello, Wandbox!" << std::endl;
    std::vector<element> storage;
    std::vector<int> test(10);
    std::generate(test.begin(), test.end(), []() {
    return rand() % 100;
});
    std::string name = "test";
    storage.push_back(element(test,name));
    std::generate(test.begin(), test.end(), []() {
    return rand() % 100;
});
    storage.push_back(element(test,name));
    std::generate(test.begin(), test.end(), []() {
    return rand() % 100;
});
    storage.push_back(element(test,name));

    std::vector<element*> copy_of_storage;
    for(auto elements: storage)
    {
        copy_of_storage.push_back(&(elements));
    }


    std::cout << copy_of_storage << std::endl; 

}
    for(auto item : elements)
inline std::ostream& operator<< (std::ostream &stream, const  std::vector<element*> _element)
{
    for (auto elements: _element)
        for(auto item : elements->keys)
            stream << item << " ";
    return stream;
}
std::ostream& operator << (std::ostream &stream, std::vector<element*> _elements)
{
    for (auto element : _elements)
    {
        for(auto item : element->keys)
        {
            stream << item << " ";
        }
    }
    return stream;
}