Как настроить функцию для преобразования вектора строк в вектор целых чисел в VC ++? - PullRequest
1 голос
/ 24 августа 2011

Вопрос в названии. Нужна помощь в выяснении, почему мой код компилируется, но не работает как задумано. Спасибо!

//This example demonstrates how to do vector<string> to vectro<int> conversion using a function.
#include <iostream>
#include <string>
#include <vector>
#include <sstream>

using namespace std;

vector<int>* convertStringVectorToIntVector (vector<string> *vectorOfStrings)
{
    vector<int> *vectorOfIntegers = new vector<int>;
    int x;
    for (int i=0; i<vectorOfStrings->size(); i++)
    {
        stringstream str(vectorOfStrings->at(i));
        str >> x;
        vectorOfIntegers->push_back(x);
    }
    return vectorOfIntegers;
}


int main(int argc, char* argv[]) {

    //Initialize test vector to use for conversion
    vector<string> *vectorOfStringTypes = new vector<string>();
    vectorOfStringTypes->push_back("1"); 
    vectorOfStringTypes->push_back("10"); 
    vectorOfStringTypes->push_back("100");
    delete vectorOfStringTypes;

    //Initialize target vector to store conversion result
    vector<int> *vectorOfIntTypes;
    vectorOfIntTypes = convertStringVectorToIntVector(vectorOfStringTypes);

    //Test if conversion is successful and the new vector is open for manipulation
    int sum = 0;
    for (int i=0; i<vectorOfIntTypes->size(); i++)
    {
        sum+=vectorOfIntTypes->at(i);
        cout<<sum<<endl;
    }
    delete vectorOfIntTypes;
    cin.get();
    return 0;
}

1 Ответ

2 голосов
/ 24 августа 2011

В приведенном выше коде есть только одна проблема: вы удаляете свои vectorOfStringTypes, прежде чем передать их в функцию преобразования.

Переместите строку delete vectorOfStringTypes; после того, как вы вызвали функцию преобразования, и программа работает, как предполагалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...