如何在VC ++中设置一个函数将字符串向量转换为整数向量?

时间:2011-08-23 23:35:46

标签: string visual-studio-2010 vector

问题出在标题中。需要帮助弄清楚为什么我的代码编译但不能按预期工作。谢谢!

//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 个答案:

答案 0 :(得分:2)

上面的代码只有一个问题:在将vectorOfStringTypes传递给转换函数之前,您正在删除它。

在调用转换函数后将行delete vectorOfStringTypes;移动到该程序,该程序按预期工作。