|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On May 19 2011 23:03 Greggle wrote:Hey guys, I hate to do this, but I've got an assignment due in a few hours. I wrote a C++ program in Dev-C++, and it compiles with no errors or warnings. The professor though always tests it by compiling it on linux with g++ though. I can't get my makefile to work for shit though. The Dev-C++ makefile for windows is: + Show Spoiler +# Project: lab7 # Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe CC = gcc.exe WINDRES = windres.exe RES = OBJ = main.o gstack.o gqueue.o $(RES) LINKOBJ = main.o gstack.o gqueue.o $(RES) LIBS = -L"C:/Dev-Cpp/lib" INCS = -I"C:/Dev-Cpp/include" CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" BIN = lab7.exe CXXFLAGS = $(CXXINCS) CFLAGS = $(INCS) RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before lab7.exe all-after
clean: clean-custom ${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ) $(CPP) $(LINKOBJ) -o "lab7.exe" $(LIBS)
main.o: main.cpp $(CPP) -c main.cpp -o main.o $(CXXFLAGS)
gstack.o: gstack.cpp $(CPP) -c gstack.cpp -o gstack.o $(CXXFLAGS)
gqueue.o: gqueue.cpp $(CPP) -c gqueue.cpp -o gqueue.o $(CXXFLAGS) The one I made for gcc in linux is (based on my extremely poor knowledge of makefiles): + Show Spoiler +prog : main.cpp gqueue.o gqueue.h gstack.o gstack.h g++ main.cpp -omain gqueue.o gstack.o gqueue.o : gqueue.cpp gqueue.h g++ gqueue.cpp gqueue.h -c -o gqueue.o gstack.o : gstack.cpp gstack.h g++ gstack.cpp gstack.h -c -o gstack.o
Can anyone help me translate it to Linux properly? They barely taught us anything about makefiles and I'm completely lost.
Well, I haven't done makefiles in gcc before but it doesn't look this hard...
Personally, I'd do it like that:
CPP=g++ CC=gcc
main: main.o gqueue.o gstack.o clean: rm -f main.o gqueue.o gstack.o
From some examples I've been looking at, it seems that gcc (g++) will automatically find the .ccp and .h files and compile them into .o files specified by dependencies in the main target, then it will compile them into output file main. All this based on the implicit rules in the compiler.
The above code is equivalent to:
g++ main.ccp -c g++ gquque.ccp -c g++ gstack.ccp -c g++ main.o gqueue.o gstack.o -o main rm -f main.o gqueue.o gstack.o
|
I have a problem with a MySQL query:
I want to select a group that does NOT contain a certain value
Table SC2
Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result:
Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on.
I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas?
|
select map, player from db where map NOT IN (select map from db where player="Tyler")
shouldn't that do it?
|
On May 24 2011 05:24 fiskrens wrote: select map, player from db where map NOT IN (select map from db where player="Tyler")
shouldn't that do it? Thank you! I tested that too and thought that it should work, but I must have made a mistake, because it do work!
|
Hey everyone, just wanted some info I just discovered that black magic is being used in computer science Black magic in cs ! and I was wondering if there are other things like this that are used?
|
On May 24 2011 08:29 Morga wrote:Hey everyone, just wanted some info I just discovered that black magic is being used in computer science Black magic in cs ! and I was wondering if there are other things like this that are used?
http://hackers-delight.org.ua/
|
One thing to consider for this is that a lot of these tricks (like the above mentioned Inverse Square Root) are for older processors. Newer processors often can do many of the calculations in a single step where older processors needed quite a lot of steps to finish the calculation. The biggest example being floating point calculations that required a lot of time even just 10 years ago and are now sometimes even faster than integer calculations. Even microprocessor programming made a few leaps forward in that regard (though in this field there are still a lot of tricks required for performance).
Also things like alternative implementations to get the length of a string (first 0-byte) are usually already implemented in standard libraries, so unless you write those libraries, you will never find a use for those tricks.
The Inverse Square Root, while at it's time a work of genius, is now superfluous - which is quite sad.
|
On May 19 2011 14:00 DeCiBle wrote: I'm trying to append the contents of a string variable to the literal "II##" and assign it to a string in C++, so far I've gone in circles with every kind of temporary variable and conversion type.
basically I'm at:
contains += 1; //update the number of structures within the file itemID = "II##"; itemID.append(contains.ToString());
but that's obviously not working; every simple solution seems to not exist. Is there any way to convert an interger to a string or put it in a file?
I've tried itemID = "II##" + contains.ToString();
and even just data << contains.ToString(); (where data is an fstream object)
I'm about to go kill. Help.
#include <sstream>
stringstream sstr; sstr<< "II##" << contains ; itemid = sstr.str();
|
On May 24 2011 15:35 Teton wrote:Show nested quote +On May 19 2011 14:00 DeCiBle wrote: I'm trying to append the contents of a string variable to the literal "II##" and assign it to a string in C++, so far I've gone in circles with every kind of temporary variable and conversion type.
basically I'm at:
contains += 1; //update the number of structures within the file itemID = "II##"; itemID.append(contains.ToString());
but that's obviously not working; every simple solution seems to not exist. Is there any way to convert an interger to a string or put it in a file?
I've tried itemID = "II##" + contains.ToString();
and even just data << contains.ToString(); (where data is an fstream object)
I'm about to go kill. Help. #include <sstream> stringstream sstr; sstr<< "II##" << contains ; itemid = sstr.str();
Adding explanation to that: String literals ("||##") are still a klutch in C++, they are actually the classical C character arrays. With emphasis: They are no string objects. For this reason, they also have no overloaded + operator.
(Assuming bar is a string object) Works: string foo = bar + "baz";
Doesn't work: string foo = "baz" + bar;
You either have to convert the string literal (character array) to a string object (i'm quite rusty with C++ syntax, but IIRC something like string foo("bar"); works), or - as in Tetons example - use a stringstream to create the result you want.
|
On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? Did you try something like: SELECT Map FROM table GROUP BY Map WHERE NOT FIND_IN_SET('Tyler', GROUP_CONCAT(Player) ) or SELECT t1.Map, t1.Player FROM table t1 WHERE NO EXISTS ( SELECT * FROM table t2 WHERE t1.Map = t2.Map AND t2.Player = 'Tyler' )
|
I'm not sure how I missed this thread (it seems pretty old).
I'm a third year CS student at the University of Calgary, and you can add me to the list of "people willing to help with stuff" if you want.
I can help with C/(rusty)C++, Java, Prolog (intermediate), Haskell, and simple automata / computability / complexity problems.
|
|
On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas?
I had to do something similar for a project last semester. I used a subquery and a NOT IN function. No idea if it's the most efficient or best way to do it, but it works. I'd guess you'd want to NOT IN a query of the maps Tyler HAS played on.
For reference, my query is below, I had to find out what times a Service Person was available (did not have a prior service call booked).
SELECT * FROM `service_person` WHERE `service_person_id` NOT IN (SELECT `service_person_id` FROM `service_person` NATURAL JOIN `service_call` WHERE date = '$date' AND time = '$time') GROUP BY `service_person_id`
Hope this works :D
|
On May 24 2011 16:18 Pkol wrote:Show nested quote +On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? I had to do something similar for a project last semester. I used a subquery and a NOT IN function. No idea if it's the most efficient or best way to do it, but it works. I'd guess you'd want to NOT IN a query of the maps Tyler HAS played on. For reference, my query is below, I had to find out what times a Service Person was available (did not have a prior service call booked). SELECT * FROM `service_person` WHERE `service_person_id` NOT IN (SELECT `service_person_id` FROM `service_person` NATURAL JOIN `service_call` WHERE date = '$date' AND time = '$time') GROUP BY `service_person_id`
Hope this works :D
NOT EXISTS is usually better as - apart from being easier to read and understand because it's closer to the natural language - the database server can stop as soon as it finds a single entry, for an IN query, it first gathers all results and then checks if it's in the result set.
|
On May 24 2011 16:18 Pkol wrote:Show nested quote +On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? I had to do something similar for a project last semester. I used a subquery and a NOT IN function. No idea if it's the most efficient or best way to do it, but it works. I'd guess you'd want to NOT IN a query of the maps Tyler HAS played on. For reference, my query is below, I had to find out what times a Service Person was available (did not have a prior service call booked). SELECT * FROM `service_person` WHERE `service_person_id` NOT IN (SELECT `service_person_id` FROM `service_person` NATURAL JOIN `service_call` WHERE date = '$date' AND time = '$time') GROUP BY `service_person_id`
Hope this works :D
On May 24 2011 16:03 Starfox wrote:Show nested quote +On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? Did you try something like: SELECT Map FROM table GROUP BY Map WHERE NOT FIND_IN_SET('Tyler', GROUP_CONCAT(Player) ) or SELECT t1.Map, t1.Player FROM table t1 WHERE NO EXISTS ( SELECT * FROM table t2 WHERE t1.Map = t2.Map AND t2.Player = 'Tyler' )
fiskrens posted a solution that is sufficient enough for me:
select map, player from db where map NOT IN (select map from db where player="Tyler") If it is the most efficient solution or not I don't know (executing it in 0,03 sec when applied). Thanks for the suggestions though.
|
On May 24 2011 21:11 nakam wrote:Show nested quote +On May 24 2011 16:18 Pkol wrote:On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? I had to do something similar for a project last semester. I used a subquery and a NOT IN function. No idea if it's the most efficient or best way to do it, but it works. I'd guess you'd want to NOT IN a query of the maps Tyler HAS played on. For reference, my query is below, I had to find out what times a Service Person was available (did not have a prior service call booked). SELECT * FROM `service_person` WHERE `service_person_id` NOT IN (SELECT `service_person_id` FROM `service_person` NATURAL JOIN `service_call` WHERE date = '$date' AND time = '$time') GROUP BY `service_person_id`
Hope this works :D Show nested quote +On May 24 2011 16:03 Starfox wrote:On May 24 2011 04:56 nakam wrote:I have a problem with a MySQL query: I want to select a group that does NOT contain a certain value Table SC2 Map Player Desert Oasis Tyler Desert Oasis Haypro Desert Oasis TLO Kulas Extreme Haypro Blistering TLO
What I want is the following result: Kulas Extreme Haypro Blistering TLO
That is only select the maps Tyler hasn't played on. I have tried variations of WHERE NOT Player = 'Tyler' and have come to the conclusion that it doesn't work. I think I need to join the table with itself and select the rows where player is NULL somehow, but I can't get it to work. Any ideas? Did you try something like: SELECT Map FROM table GROUP BY Map WHERE NOT FIND_IN_SET('Tyler', GROUP_CONCAT(Player) ) or SELECT t1.Map, t1.Player FROM table t1 WHERE NO EXISTS ( SELECT * FROM table t2 WHERE t1.Map = t2.Map AND t2.Player = 'Tyler' ) fiskrens posted a solution that is sufficient enough for me: select map, player from db where map NOT IN (select map from db where player="Tyler") If it is the most efficient solution or not I don't know (executing it in 0,03 sec when applied). Thanks for the suggestions though.
You won't have problems for the next 1000-5000 entries into the table, but after that your performance will decline very quickly.
The suggestion by Starfox should provide the most efficient solution, which is also easier to read (except for the t1/t2 part, i hate it when people name tables t1,t2,t3,... :p)
SELECT t1.Map, t1.Player FROM table t1 WHERE NOT EXISTS ( SELECT * FROM table t2 WHERE t1.Map = t2.Map AND t2.Player = 'Tyler' )
|
On May 24 2011 15:47 Morfildur wrote:Show nested quote +On May 24 2011 15:35 Teton wrote:On May 19 2011 14:00 DeCiBle wrote: I'm trying to append the contents of a string variable to the literal "II##" and assign it to a string in C++, so far I've gone in circles with every kind of temporary variable and conversion type.
basically I'm at:
contains += 1; //update the number of structures within the file itemID = "II##"; itemID.append(contains.ToString());
but that's obviously not working; every simple solution seems to not exist. Is there any way to convert an interger to a string or put it in a file?
I've tried itemID = "II##" + contains.ToString();
and even just data << contains.ToString(); (where data is an fstream object)
I'm about to go kill. Help. #include <sstream> stringstream sstr; sstr<< "II##" << contains ; itemid = sstr.str(); Adding explanation to that: String literals ("||##") are still a klutch in C++, they are actually the classical C character arrays. With emphasis: They are no string objects. For this reason, they also have no overloaded + operator. (Assuming bar is a string object) Works: string foo = bar + "baz"; Doesn't work: string foo = "baz" + bar; You either have to convert the string literal (character array) to a string object (i'm quite rusty with C++ syntax, but IIRC something like string foo("bar"); works), or - as in Tetons example - use a stringstream to create the result you want.
but string foo = string("baz") + bar; should work :p
|
On May 19 2011 14:00 DeCiBle wrote: I'm trying to append the contents of a string variable to the literal "II##" and assign it to a string in C++, so far I've gone in circles with every kind of temporary variable and conversion type.
basically I'm at:
contains += 1; //update the number of structures within the file itemID = "II##"; itemID.append(contains.ToString());
but that's obviously not working; every simple solution seems to not exist. Is there any way to convert an interger to a string or put it in a file?
I've tried itemID = "II##" + contains.ToString();
and even just data << contains.ToString(); (where data is an fstream object)
I'm about to go kill. Help.
My advice, add this template somewhere in your project.
//goes in a .h you include anytime you want to use this function template<class T> std::string toString(const T& value) { std::ostringstream oss; oss << value; return oss.str(); }
Now you can convert anything to a string without worrying about the order:
resulting_string = toString(1) + toString("ABC") + another_string;
|
I need help :/ I have some troubles with data structures in Java, and there is something I don't get.
Here is a piece of code from me : + Show Spoiler +HashMap<Position, PositionTree> sons = new HashMap<Position, PositionTree>();
Position a = new Position(0,0); sons.put(a, null); Position b = new Position(0,0); System.out.println(sons.keySet().contains(a)); System.out.println(b.equals(a)); System.out.println(sons.keySet().contains(b)); Position is just a standard class, PositionTree is my tree structure. When running this I get true true false. Meaning b.equals(a) is true, sons.keySet() contains a, but... sons.keySet() doesn't "contain" b ?
When looking at the doc of contains ( http://download.oracle.com/javase/1.4.2/docs/api/java/util/Set.html#contains(java.lang.Object) ) it says «returns true if and only if this set contains an element e such that (o==null ? e==null : o.equals(e)). » It seems to me like it should return true... Does anybody have any clue on what I am doing wrong ?
|
|
|
|
|