Herodotus, who was useful in many other ways, also gave figures that are likely at least an order of magnitude too large.
More modern estimates of Cannae seem to be 10-16,000 on the Roman side. Part of the reason is that Hannibal was unlikely to be able to (or would necessarily want to) prevent a rout by the infantry.
Ancient warfare was very psychological and would typically end in a rout rather than a slaughter. Even now with far deadlier weapons, when we talk about "casulaties" we tend to include wounded and those outnumber the killed often by 2:1 or more (side note: your Vietnam casualty number is fatal casualties and pretty much correct).
Also, at this time the population of Roman Italy was likely close to a million or more. The city of Rome peaked at 1-2 million population before the Fall. Even in Republic times it was probably 200-500k+.
So the damage of Cannae was probably hugely psychological and presented a short-term problem in that it takes time to raise and train an army but given the demographics of the Roman Republic, it probably didn't represent a massive loss of military-age men in the same way that, say, World War One or Two did.