C ++:访问向量列表中的某些元素

古曼

我有矢量列表:

list< vector<int> > myList;

该列表的结构:

({1,2,3}, {4,5,6}, ...)

我想从他的职位上获得一定的帮助。例如,getFromList(myList, 0, 2)将返回3我试过了,但是不起作用:

int getFromList(list< vector<int> > myList, int i, int j) 
{
    int ki = 0, kj = 0, num;
    for (list<vector<int>>::iterator it1 = myList.begin(); it1 != myList.end(); ++it1) {
        vector<int>::iterator it2;
        ki++;
        for (it2 = (*it1).begin(); it2 != (*it1).end(); ++it2) {
            kj++;
            if (ki == i && kj == j) {
                num = (*it2);
            }
        }
    }

    return num;
}
来自莫斯科的弗拉德

这是一个示范节目

#include <iostream>
#include <list>
#include <vector>
#include <iterator>
#include <stdexcept>


int getFromList( const std::list<std::vector<int>> &myList, size_t i, size_t j )
{
    if ( !( i < myList.size() ) ) throw std::out_of_range( "The frst index is out of the range" );

    auto it = std::next( myList.begin(), i );

    if ( !( j < it->size() ) ) throw std::out_of_range( "The second index is out of the range" );

    return it->operator []( j );
}    

int main()
{
    std::list<std::vector<int>> myList = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11, 12 } };

    std::cout << "myList[" << 2 << "][" << 3 << "] = " << getFromList( myList, 2, 3 ) << std::endl;

    return 0;
}

它的输出是

myList[2][3] = 11

请注意,该函数的第一个参数是const reference。

对于您的函数,当索引之一超出有效范围时,它具有未定义的行为,因为该函数返回变量的未初始化值num

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:访问向量列表中的某些元素

来自分类Dev

如何访问C ++中的某些元素(向量中)

来自分类Dev

向量中某些元素的C ++迭代器

来自分类Dev

在C ++向量中访问超出尺寸的元素

来自分类Dev

在C语言的结构中访问某些元素

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

在C ++中访问列表元素功能

来自分类Dev

在向量C ++ 11中访问引用包装器元素

来自分类Dev

使用指针访问struct c ++向量中的元素

来自分类Dev

如何在C++中删除列表中的某些元素

来自分类Dev

从向量访问某些类函数C ++的问题

来自分类Dev

列表的访问元素。C#

来自分类Dev

向量中的C ++乘法元素

来自分类Dev

C ++删除向量中的元素

来自分类Dev

向量c ++中的sort元素

来自分类Dev

从向量C ++中的元素中减去值

来自分类Dev

在C中访问数组元素

来自分类Dev

在C中访问数组元素

来自分类Dev

在C ++中删除并推回向量的元素

来自分类Dev

指针向量中的C ++擦除元素

来自分类Dev

从向量C ++中删除多个元素

来自分类Dev

C ++在向量中查找特定元素

来自分类Dev

在向量C ++中查找多个max元素

来自分类Dev

在向量对中查找元素并输出C ++

来自分类Dev

指针向量中的C ++擦除元素

来自分类Dev

C ++按值从向量中删除元素

来自分类Dev

C++ 中向量的逐元素“OR”运算

来自分类Dev

C ++无法访问抽象类的向量元素?