私は現在、私はマトリックス形式のベクトルの内容を印刷するような構造体の私のベクトルにoverload operator<<
を作るしようとしていますが...ポインタのベクトル構造体に対するオーバーロード演算子<<?
これは私がこれまで
// 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;
}
を試みたものです
何らかの理由でそれが機能していないため、何がうまくいかないのか分からないようですか?
https://wandbox.org/permlink/BQpqmz0HwoXgyS7t
コンパイルエラーを読もうとしましたか? –
私はコンパイラエラーと(おそらく)タイプミスを修正し、私のマシンで動作しました。まあ、私はそれが動作することを意図して動作すると仮定します。 – Eljay
要素内の項目は、 'for(auto item:elements-> keys) 'とするべき問題です。 –