Liczby całkowite są zapisywane trochę inaczej niż rzeczywiste. W takim razie mając wektor liczb całkowitych zapisanych w pamięci binarnie w jakiś tam sposób, nie możesz tak po prostu zamienić je na typy double. Jest mechanizm rzutowania w C++ i to jest jedyna metoda, aby traktować int jak double i na odwrót.
Nie wiem jak wyobrażasz sobie posiadać wektor typu double z liczbami: 1.5, 2.25, 3.11 i potem zamienić to na wektor liczb typu int. Jedyne co możesz zrobić, to rzutować każdą wartość na int po kolei przy wyciąganiu jej z wektora. Wtedy liczby po przecinku zostaną ucięte.
Z kolei posiadanie wektora liczb int i późniejsze rzutowanie na double jest już raczej nieprzydatne, bo wektor zawsze będzie przechowywał liczby całkowite. Co Ci po wektorze double, w którym liczby zawsze będą całkowite?
Typ double nie powinien służyć jako zamiennik int, bo zapisuje liczby trochę inaczej. Niech za przykład posłuży mi taki kod:
int n = 0;
double d = 0;
cout << -n << endl;
cout << -d << endl;
Program wypisze dla -int wartość 0, a dla -double -0. Taki stan rzeczy wynika ze sposobu zapisu tych liczb w komputerze. SPOJ odrzuciłby wartość -0, ale na szczęście dla komputera -0 == 0. No chociaż tyle dobrego :-)
To był tylko taki przykład różnicy między int a double. A teraz wracam do Twojego pytania.
Jeśli znasz obiektowość, to jest coś takiego jak funkcje konwertujące. Działa to tak, że jeden obiekt Twojej klasy (np. taki wektor), może być traktowany w różnych sytuacjach jak inny typ. Może to jest właśnie tym, czego szukasz. Wystarczy poznać obiektowość :-)
Czytając jednak Twoje wypowiedzi domniemam, że jeszcze obiektowości nie znasz na tyle dobrze, aby to zrozumieć. W takim wypadku pozostaje Ci rzutowanie:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector < double > dane;
dane.push_back( 5 );
dane.push_back( 2 );
dane.push_back( 3 );
dane.push_back( 1 );
for( int i = 0; i < dane.size(); i++ )
cout << (int)dane[ i ] << endl;
return 0;
}
Powyższy program wypisuje wektor, ale z taką różnicą, że każdy element jest traktowany jak int. Nie wiem na co to komu, ale o to chyba pytałeś, prawda?
Pozdrawiam :-)