如何获取C++二维vector指定行的长度及对应行的最后一个元素
二维vector行长度与末尾元素获取方法
核心操作
你定义的vector<vector<int>> numbers本质是元素类型为vector<int>的一维vector,每个元素对应二维数组的一行,操作方法如下:
- 获取指定行的长度:假设要获取索引为
row_idx的行的长度(行索引从0开始计数),直接调用该行vector的size()方法即可,代码为numbers[row_idx].size() - 获取指定行的最后一个元素:有两种可行写法
- 写法1(更简洁安全,C++11及以上标准支持):
numbers[row_idx].back() - 写法2(兼容旧C++标准):
numbers[row_idx][numbers[row_idx].size() - 1]
- 写法1(更简洁安全,C++11及以上标准支持):
额外注意事项
你当前的代码存在越界访问风险:你初始化的numbers是空vector,既没有提前分配3行的空间,也没有在插入元素前执行push_back操作,直接用numbers[2][numCount]++、numbers[0][numCount] = ...这类写法运行时会直接崩溃。建议你定义numbers时先初始化3行,写成vector<vector<int>> numbers(3);,后续给每行新增元素用numbers[row_idx].push_back(值)的方式操作,才能正常使用上述的长度、末尾元素获取方法。
内容的提问来源于stack exchange,提问作者Aquatic
相关产品推荐
相关产品推荐

