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 + -
显示快捷键?