having:   std::map&lt;const std::string,A &gt; cache;   how would you insert into this container(duplicate attempt is possible):  cache.insert(std::make_pair(id,ps));  cache.insert(std::pair&lt;std::string,A&gt;(id,ps));  if(cache.find(id) == cache.end()){  cache[id] = ps; }   and why??(in terms of time and memory)  do you have a better solution?  Update: I am not using C++11  Update-2: OK, so far we realised that:  make_pair and pair&lt;&gt; are analogous.  insert and [ ](with or without ifchecking) will both invoke copy. So.. Is the competition  between :   insert  [ ](withifchecking) [ ](withifchecking and )    which one would you prefer?  thanks again
A while ago, I had a discussion with a colleague about how to insert values in STL . I preferred map[key] = value; because it feels natural and is clear to read whereas he preferred map.insert(std::make_pair(key, value)). I just asked him and neither of us can remember the reason why insert is better, but I am sure it was not just a style preference rather there was a technical reason such as efficiency. The  simply says: &quot;Strictly speaking, this member function is unnecessary: it exists only for convenience.&quot; Can anybody tell me that reason, or am I just dreaming that there is one?
I found the following proof arguing for the irrationality of $\sqrt{2}$.     Suppose for the sake of contradiction that $\sqrt{2}$ is rational, and choose the least integer $q &gt; 0$ such that $(\sqrt{2} - 1)q$ is a nonnegative integer. Let $q'::= (\sqrt{2} - 1)q$. Clearly $0 &lt; q' &lt; q$. But an easy computation shows that $(\sqrt{2} - 1)q'$ is a nonnegative integer, contradicting the minimality of $q$.   Clearly, this is a vague proof in that it expects the reader to work out the math involved on his own. I took that as an exercise and worked out the following:  Assuming $\sqrt{2}$ to be rational, let $$\sqrt{2} = \frac{p}{q}$$ where $p$ and $q$ are least possible integers.  Clearly then, $\sqrt{2} - 1$ would also be rational, $$\sqrt{2} - 1 = \frac{p-q}{q}$$ where both $(p-q)$ and $q$ are also integers.  Multiplying both sides by $q$, we get $$(\sqrt{2} - 1)q = (p-q) = q'$$ where $q'$ is an integer. Using, $2&gt;\sqrt{2} &gt; 1$ , we get $$1&gt;\sqrt{2}-1&gt;0$$ proving that $q'$ is a non-negative integer.  As stated in the proof, computing $(\sqrt{2}-1)q'$ we get, $$(\sqrt{2}-1)q' = \frac{(p-q)^2}{q}$$which is not necessarily an integer (in fact necessarily not an integer). However, the proof claims it to be.  Am I missing something or something is wrong with how I proceeded?  Here is a link to the textbook where I found this proof: , (p 32, problem 1.14).  P.S. This is my first post here and my first time with TeX. I'd also like to know if there is anything wrong with the way my question is presented. What package should I use to typeset units? I know there are a few packages related to typesetting units:   unitsdef units, which can be seen as a "base package" used by unitsdef SIunits siunitx, which is the successor to SIunits maybe others? like cjwunits and hepunits   What is the difference between them? Do they also work inside Math mode? And, more importantly, which one should I use?  Suggestion for people trying to answer this question: show some examples of how to typeset both simple and complex units. For instance, try typesetting these items:   100 Celsius 3 x 10^5 km/s gravitational constant is measured in N m^2/kg^2 10 kHz = 1 s^{-4} sin(x) meters   I think these examples cover most needs when writing scientific texts: simple measurements (value + simple unit), values written in scientific notation, simple fractional units, complex fractional and squared units, units without any value accompanying them, units with arbitrary exponents, and arbitrary math code instead of a simple value. I've seen many science popularisation documentaries and read few books (obviously not being scientist myself). I am able to process and understand basic ideas behind most of these. However for general relativity there is this one illustration, which is being used over and over (image from Wikipedia):    I always thought that general relativity gives another way how you can describe gravity. However for this illustration to work, there needs to be another force, pulling the object down (referring to a direction in the attached image). If I put two non-moving objects in the image, what force will pull them together?  So where is my understanding incorrect? Or is general relativity not about explaining gravity and just describes how heavy objects bends spacetime (in that case the analogy is being used not correctly in my opinion)?    UPDATE Thank you for the answers and comments. Namely the XKCD comics is a spot on. I understand that the analogy with bent sheet of fabric pretty bad, but it seems that it can be fixed if you don't bent the fabric, but just distort the drawn grid.   Would you be so kind and answer the second part of the question as well - whether general relativity is explaining gravitational force. To me it seems that it is not (bending of spacetime simply can not affect two non-moving objects). However most of the time it is being presented that it does. Is it possible to have a pair of Gaussian random variables for which the joint distribution is not Gaussian? Somebody asked me this question in a job interview and I replied that their joint distribution is always Gaussian. I thought that I can always write a bivariate Gaussian with their means and variance and covariances. I am wondering if there can be a case for which the joint probability of two Gaussians is not Gaussian? I'm having trouble solving a Fitch Style Proof and I was hoping someone would be able to help me.  Premises: p ∧ q  Goal: q ∨ r  Would be an assumption (p ∧ q => q ∨ r) in first step a correct one?   Then, q ∨ r Implication Elimination: 2, 1  Why is it not correct?  Thank you very much for any help! There are several unknown numbers in mathematics, such as optimal constants in some inequalities. Often it is enough to some estimates for these numbers from above and below, but finding the exact values is also interesting. There are situations where such unknown numbers are necessarily natural numbers, for example in Ramsey theory. For example, we know that there is a smallest integer $n$ such that any graph with $n$ vertices contains a complete or an independent subgraph of 10 vertices, but we don't know the exact value of $n$.  What kinds of unknown small (less than 100, say) integers are there? What are the smallest unknown constants which are known to be integers? Or, more rigorously, what is the smallest upper bound for an unknown but definable number that is known to be an integer?  I know that asking for the smallest unknown integer is ill-defined since we do not know the exact values. The more rigorous version of the question is well-posed, but I do not want to keep anyone from offering interesting examples even if they are clearly not going to win the race for the lowest upper bound.  An answer should contain a definition of an integer quantity (or a family of them) and known lower and upper bounds (both of which should be integers, not infinite). Conjectures about the actual value are also welcome. I have given one example below to give an idea of what I'm looking for. SSH and home directory permissions It took me hours to solve this SSH problem with one of my class accounts on my school's servers.    I couldn't ssh into one particular class account without entering my password, while passwordless authentication worked with my other class accounts. The .ssh/ directory and all of its contents had the same, correct permissions as the other class accounts.   Turns out the problem was the permissions set on my own home directory. Passwordless authentication did not work when the permissions on my HOME directory were set to 770 (regardless of the permissions set for .ssh/), but it worked with permissions set to 755 or 700.   Anyone know why SSH does this? Is it because the home directory permissions are too permissive? Why does SSH refuse to authenticate with the public/private keys when the home directory is set more permissive than 700? What are the most widely used C++ vector/matrix math/linear algebra libraries, and their cost and benefit tradeoffs? Primary ideals in Noetherian rings Can Selenium interact with an existing browser session? Producing doc/docx from LaTeX Is there any way to produce doc/docx files from LaTeX? How to detect true Windows version? I just updated all my sites using the patch method of resolving the Drupal SA-CORE-2014-005 exploit. I just read reports that just yesterday there is someone from a Russian IP infiltrating drupal sites.     My main concerns are now:   How do I tell if my sites have been comprised? What should I search for in my apache access logs to detect if my site was a victim or not? So far what are these hackers doing to comprised sites? Suppose $m,n&gt;0$, $U$ an open subset of $\mathbb{R}^{m+n}$ and let $f: U \to \mathbb{R}^n$ be continuously differentiable.  Is it possible for $f$ to be injective?    My thinking is that continuous differentiability+injectivity suggests that this is sort of getting at a converse to the Inverse Function Theorem.  We know the Jacobian is not invertible at any point in $U$, and the question is asking if this implies that $f$ cannot be invertible in any neighborhood contained in $U$. How can I replace a relay with a MOSFET Transistor? I have this working         &ndash; Schematic created using   An Arduino commute both relays and a power adapter charge each battery at a time.  I would like to replace each relay by a MOSFET. How can I do that?  I think the solution bellow will not work because DRAIN is always connected to SOURCE and this will short circuit batteries. MOSFETS only isolate from SOURCE to DRAIN.  When the D9 is HIGH, D10 will be LOW so the power adapter will never be charging both batteries simultaneously.          Sorry for the messy schematic.  Thank you very much. I have a production server running with the following flag: -XX:+HeapDumpOnOutOfMemoryError  Last night it generated a java-38942.hprof file when our server encountered a heap error. It turns out that the developers of the system knew of the flag but no way to get any useful information from it.  Any ideas? How can I improve Ubuntu overall system performance? Simple question, but one that I've been curious about...is there a functional difference between the following two commands?  String::class String.class   They both do what I expect -- that is to say they return Class -- but what is the difference between using the :: and the .?  I notice that on those classes that have constants defined, IRB's auto-completion will return the constants as available options when you press tab after :: but not after ., but I don't know what the reason for this is... Loading a package conditionally Can you trip as part of a Tome of Battle Maneuver?