0

ポインタのベクトルのイテレータを関数に渡したいです。渡す方法がわかりません。

これは正しい方法ですか:

main() {
    vector<MyObject*>::iterator it;

    for (it = added.begin(); it < added.end(); it++) {    
    string value = DoSomething(it)    
    }  
}
    string DoSomething(MyObject* a)
    {    
    if (a->isValid())
        Str = "0";
    ..
    ..   
    return str;
    }
4

3 に答える 3

3

ポインタのベクトルのイテレータを関数に渡したいです。

string value = DoSomething(it);

正しく渡そうとしていますが、関数はイテレータを使用するように記述されていません:

string DoSomething(MyObject* a)

この関数はポインタを必要としています...あなたはそれを与えることができます:

string value = DoSomething(*it);

または、DoSomething 関数を変更できます。

string DoSomething(vector<MyObject*>::iterator i)
{
     if ((*i)->isvalid())
         ...
}
于 2013-04-25T06:08:23.263 に答える