You printed e21[i], which was a decimal. How could you do an at() of a decimal?
Try: Rods[e21[3]].at(i)
Edit: and I know it really doesn't matter too much, but the indices of an array/vector can never be negative. Might be better practice to make your for loop: for (unsignedint i = 0; i < 3; i++)