同时访问两个列表的成员时出错? 我在C++(VisualStudio)中同时迭代两个列表时,面临一些未知的错误。两个列表的长度相同

同时访问两个列表的成员时出错? 我在C++(VisualStudio)中同时迭代两个列表时,面临一些未知的错误。两个列表的长度相同,c++,list,visual-c++,stl,iterator,C++,List,Visual C++,Stl,Iterator,我正在遵循()中提到的程序。不知道我在哪里犯了错误。有人能帮我解决这个错误吗 具有for循环的函数 int Two_Lists_ForLoop(std::initializer_list<dmat> list1, std::initializer_list<string> list2) { std::list<dmat>::iterator it1 = list1.begin(); std::list<string>::iterat

我正在遵循()中提到的程序。不知道我在哪里犯了错误。有人能帮我解决这个错误吗

具有for循环的函数

int Two_Lists_ForLoop(std::initializer_list<dmat> list1, std::initializer_list<string> list2)
{
    std::list<dmat>::iterator it1 = list1.begin();
    std::list<string>::iterator it2 = list2.begin();

    for (; it1 != list1.end() && it2 != list2.end(); ++it1, ++it2){

        //run some code
        cout << *it1 << endl;
        cout << *it2 << endl;
    }
    return 0;
}
int-Two-Lists\u-ForLoop(std::initializer\u-list1,std::initializer\u-list2)
{
std::list::iterator it1=list1.begin();
std::list::iterator it2=list2.begin();
对于(;it1!=list1.end()&&it2!=list2.end();++it1,++it2){
//运行一些代码

Visual Studio是否有一个选项卡,您可以在其中以文本形式获取错误。请复制并粘贴文本,完整无误。请在代码中标出行(带注释)错误所在的位置。最好创建一个向我们展示的类型,一个复制问题的类型,我们可以亲自尝试并查看错误。不过,作为提示:
std::initialize\u list
不是一个
std::list
,这两种类型是不兼容的,它们的迭代器也是不兼容的。您应该选择
std::list::iterator
se
std::initializer\u list::iterator
(因为容器是
initializer\u list
,而不是
列表
)。或者简单地使用
auto
关键字。@Someprogrammerdude非常感谢,问题解决了。我将
std::list
替换为
std::initialize_list
@the_Learner
auto it1=list1.begin();
auto it2=list2.begin();
Visual Studio有一个选项卡,您可以在其中以文本形式获取错误。请复制粘贴文本,完整完整。请在代码中标出行(带注释)错误所在的位置。最好创建一个向我们展示的类型,一个复制问题的类型,我们可以亲自尝试并查看错误。不过,作为提示:
std::initialize\u list
不是一个
std::list
,这两种类型是不兼容的,它们的迭代器也是不兼容的。您应该选择
std::list::iterator
se
std::initializer\u list::iterator
(因为容器是
initializer\u list
,而不是
列表
)。或者简单地使用
auto
关键字。@Someprogrammerdude非常感谢,问题解决了。我将
std::list
替换为
std::initialize_list
@the_Learner
auto it1=list1.begin();
auto it2=list2.begin();
int Two_Lists_WhileLoop(std::initializer_list<dvec> list1, std::initializer_list<string> list2)
{
    std::list<dvec>::iterator it1 = list1.begin();
    std::list<string>::iterator it2 = list2.begin();

    while (it1 != list1.end() && it2 != list2.end()) {

        //run some code
        cout << *it1 << endl;
        cout << *it2 << endl;

        it1++;
        it2++;
    }
    return 0;
}