eb109.c
来自「linux下编程用 编译软件」· C语言 代码 · 共 75 行
C
75 行
// { dg-do assemble }#include<map>#include<iostream>#include<vector>#include<string>using namespace std;// empty parameter class with a minimal set of operations// if there are no weights for edges necessarystruct Empty{ public: Empty(int=0) {} bool operator<(const Empty&) const { return true;}};inline ostream& operator<<(ostream& os, const Empty&) { return os;}inline istream& operator>>(istream& is, Empty& ) { return is;}template<class VertexType, class EdgeType>class Graph{ // { dg-error "" } candidates public: // public type interface typedef std::map<int, EdgeType > Successor; typedef std::pair<VertexType, Successor> vertex; typedef std::vector<vertex> GraphType; typedef typename GraphType::iterator iterator; typedef typename GraphType::const_iterator const_iterator; // a lot of stuff deleted .... private: bool directed; GraphType C; // container ostream* pOut;};// all graph-methods delettemplate<class VertexType, class EdgeType>ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G){ // display of vertices with successors for(int i = 0; i < G.size(); ++i) // { dg-error "" } no size function { os << G[i].first << " <"; // { dg-error "" } no index operator // The compiler does not like this line!!!!!! typename Graph<VertexType, EdgeType>::Successor::iterator startN = G[i].second.begin(), // { dg-error "" } no index operator endN = G[i].second.end(); // { dg-error "" } no index operator while(startN != endN) { os << G[(*startN).first].first << ' ' // { dg-error "" } no index operator << (*startN).second << ' '; ++startN; } os << ">\n"; } return os;}int main(){ // no edge weighting, therefore type Empty: Graph<std::string, Empty> V(true); // { dg-error "" } no bool constructor // ReadGraph(V, "gra1.dat"); // display of vertices with successors cout << V;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?