In circuit switching, circuits are dedicated between source and destination; whereas in virtual circuits or packet switching, they are not dedicated.
Circuit switching is ideal when data must be transmitted quickly, must arrive in sequencing order and at a constant arrival rate. Therefore, when transmitting real time data, such as audio and video, circuit switching networks will be used.
In virtual circuit switching, different messages can use the same network resources within the same time period. Since network resources are not dedicated to a certain session the protocol avoids wasting resources when no data is transmitted in the session. Packet switching is more efficient and robust for data that is burst in its nature, and can withstand delays in transmission, such as e-mail messages, and Web pages.
Hope this clarifies.