Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to compile a C++ source code written for Linux/Unix on Windows Vista (code given)
    text
    copied!<p>I have a c++ source code that was written in linux/unix environment by some other author. It gives me errors when i compile it in windows vista environment. I am using Bloodshed Dev C++ v 4.9. please help. </p> <pre><code>#include &lt;iostream.h&gt; #include &lt;map&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;string.h&gt; #include &lt;strstream&gt; #include &lt;unistd.h&gt; #include &lt;stdlib.h&gt; using namespace std; template &lt;class T&gt; class PrefixSpan { private: vector &lt; vector &lt;T&gt; &gt; transaction; vector &lt; pair &lt;T, unsigned int&gt; &gt; pattern; unsigned int minsup; unsigned int minpat; unsigned int maxpat; bool all; bool where; string delimiter; bool verbose; ostream *os; void report (vector &lt;pair &lt;unsigned int, int&gt; &gt; &amp;projected) { if (minpat &gt; pattern.size()) return; // print where &amp; pattern if (where) { *os &lt;&lt; "&lt;pattern&gt;" &lt;&lt; endl; // what: if (all) { *os &lt;&lt; "&lt;freq&gt;" &lt;&lt; pattern[pattern.size()-1].second &lt;&lt; "&lt;/freq&gt;" &lt;&lt; endl; *os &lt;&lt; "&lt;what&gt;"; for (unsigned int i = 0; i &lt; pattern.size(); i++) *os &lt;&lt; (i ? " " : "") &lt;&lt; pattern[i].first; } else { *os &lt;&lt; "&lt;what&gt;"; for (unsigned int i = 0; i &lt; pattern.size(); i++) *os &lt;&lt; (i ? " " : "") &lt;&lt; pattern[i].first &lt;&lt; delimiter &lt;&lt; pattern[i].second; } *os &lt;&lt; "&lt;/what&gt;" &lt;&lt; endl; // where *os &lt;&lt; "&lt;where&gt;"; for (unsigned int i = 0; i &lt; projected.size(); i++) *os &lt;&lt; (i ? " " : "") &lt;&lt; projected[i].first; *os &lt;&lt; "&lt;/where&gt;" &lt;&lt; endl; *os &lt;&lt; "&lt;/pattern&gt;" &lt;&lt; endl; } else { // print found pattern only if (all) { *os &lt;&lt; pattern[pattern.size()-1].second; for (unsigned int i = 0; i &lt; pattern.size(); i++) *os &lt;&lt; " " &lt;&lt; pattern[i].first; } else { for (unsigned int i = 0; i &lt; pattern.size(); i++) *os &lt;&lt; (i ? " " : "") &lt;&lt; pattern[i].first &lt;&lt; delimiter &lt;&lt; pattern[i].second; } *os &lt;&lt; endl; } } void project (vector &lt;pair &lt;unsigned int, int&gt; &gt; &amp;projected) { if (all) report(projected); map &lt;T, vector &lt;pair &lt;unsigned int, int&gt; &gt; &gt; counter; for (unsigned int i = 0; i &lt; projected.size(); i++) { int pos = projected[i].second; unsigned int id = projected[i].first; unsigned int size = transaction[id].size(); map &lt;T, int&gt; tmp; for (unsigned int j = pos + 1; j &lt; size; j++) { T item = transaction[id][j]; if (tmp.find (item) == tmp.end()) tmp[item] = j ; } for (map &lt;T, int&gt;::iterator k = tmp.begin(); k != tmp.end(); ++k) counter[k-&gt;first].push_back (make_pair &lt;unsigned int, int&gt; (id, k-&gt;second)); } for (map &lt;T, vector &lt;pair &lt;unsigned int, int&gt; &gt; &gt;::iterator l = counter.begin (); l != counter.end (); ) { if (l-&gt;second.size() &lt; minsup) { map &lt;T, vector &lt;pair &lt;unsigned int, int&gt; &gt; &gt;::iterator tmp = l; tmp = l; ++tmp; counter.erase (l); l = tmp; } else { ++l; } } if (! all &amp;&amp; counter.size () == 0) { report (projected); return; } for (map &lt;T, vector &lt;pair &lt;unsigned int, int&gt; &gt; &gt;::iterator l = counter.begin (); l != counter.end(); ++l) { if (pattern.size () &lt; maxpat) { pattern.push_back (make_pair &lt;T, unsigned int&gt; (l-&gt;first, l-&gt;second.size())); project (l-&gt;second); pattern.erase (pattern.end()); } } } public: PrefixSpan (unsigned int _minsup = 1, unsigned int _minpat = 1, unsigned int _maxpat = 0xffffffff, bool _all = false, bool _where = false, string _delimiter = "/", bool _verbose = false): minsup(_minsup), minpat (_minpat), maxpat (_maxpat), all(_all), where(_where), delimiter (_delimiter), verbose (_verbose) {}; ~PrefixSpan () {}; istream&amp; read (istream &amp;is) { string line; vector &lt;T&gt; tmp; T item; while (getline (is, line)) { tmp.clear (); istrstream istrs ((char *)line.c_str()); while (istrs &gt;&gt; item) tmp.push_back (item); transaction.push_back (tmp); } return is; } ostream&amp; run (ostream &amp;_os) { os = &amp;_os; if (verbose) *os &lt;&lt; transaction.size() &lt;&lt; endl; vector &lt;pair &lt;unsigned int, int&gt; &gt; root; for (unsigned int i = 0; i &lt; transaction.size(); i++) root.push_back (make_pair (i, -1)); project (root); return *os; } void clear () { transaction.clear (); pattern.clear (); } }; int main (int argc, char **argv) { extern char *optarg; unsigned int minsup = 1; unsigned int minpat = 1; unsigned int maxpat = 0xffffffff; bool all = false; bool where = false; string delimiter = "/"; bool verbose = false; string type = "string"; int opt; while ((opt = getopt(argc, argv, "awvt:M:m:L:d:")) != -1) { switch(opt) { case 'a': all = true; break; case 'w': where = true; break; case 'v': verbose = true; break; case 'm': minsup = atoi (optarg); break; case 'M': minpat = atoi (optarg); break; case 'L': maxpat = atoi (optarg); break; case 't': type = string (optarg); break; case 'd': delimiter = string (optarg); break; default: cout &lt;&lt; "Usage: " &lt;&lt; argv[0] &lt;&lt; " [-m minsup] [-M minpat] [-L maxpat] [-a] [-w] [-v] [-t type] [-d delimiter] &lt; data .." &lt;&lt; endl; return -1; } } if (type == "int") { PrefixSpan&lt;unsigned int&gt; prefixspan (minsup, minpat, maxpat, all, where, delimiter, verbose); prefixspan.read (cin); prefixspan.run (cout); }else if (type == "short") { PrefixSpan&lt;unsigned short&gt; prefixspan (minsup, minpat, maxpat, all, where, delimiter, verbose); prefixspan.read (cin); prefixspan.run (cout); } else if (type == "char") { PrefixSpan&lt;unsigned char&gt; prefixspan (minsup, minpat, maxpat, all, where, delimiter, verbose); prefixspan.read (cin); prefixspan.run (cout); } else if (type == "string") { PrefixSpan&lt;string&gt; prefixspan (minsup, minpat, maxpat, all, where, delimiter, verbose); prefixspan.read (cin); prefixspan.run (cout); } else { cerr &lt;&lt; "Unknown Item Type: " &lt;&lt; type &lt;&lt; " : choose from [string|int|short|char]" &lt;&lt; endl; return -1; } return 0; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload