C++ 如何在C++;?
我有以下向量:C++ 如何在C++;?,c++,C++,我有以下向量: std::vector<std::pair<std::function<void(iter_type, iter_type)>, bool>> functionList; 这导致了一场车祸 如何安全地验证此索引中是否有对象,以便修改 表示运算符[]返回一个引用,但我试图检查它是否为null,但无法执行 另外,reference在reference操作符[](size\u type pos)中的含义是什么?当然与和不同,在调用[]之前,使用.a
std::vector<std::pair<std::function<void(iter_type, iter_type)>, bool>> functionList;
这导致了一场车祸
如何安全地验证此索引中是否有对象,以便修改
表示运算符[]
返回一个引用,但我试图检查它是否为null,但无法执行
另外,reference
在reference操作符[](size\u type pos)中的含义是什么代码>?当然与和不同,在调用[]
之前,使用.at(index)
并捕获异常,或者检查索引
<> > C++中的引用不是空的,它们是别名。指针可以是C++中的null, 使用<代码> .AT(index)并捕获异常,或者在调用<代码> []]/<代码> < /P>之前检查<代码>索引> VEC()/代码>。
<> > C++中的引用不是空的,它们是别名。在C++中指针可以为null。< P>有三种方法来使用向量,而不冒来自越界访问的未定义行为的风险。按优先顺序,它们是:
- 正确计算索引
- 使用索引之前,请检查索引是否在边界内
- 不要使用
functionlist[index]
而是使用functionlist.at(index)
,这将引发错误索引的异常
有三种方法可以使用向量,而不会因为越界访问而导致未定义的行为。按优先顺序,它们是:
- 正确计算索引
- 使用索引之前,请检查索引是否在边界内
- 不要使用
functionlist[index]
而是使用functionlist.at(index)
,这将引发错误索引的异常
另外:如果(functionList[index]!=null)返回类型中的
reference
与&
之间有什么区别?std::vector::reference
只是T&
的typedef
@AntoninGAVREL-Ahem,no.@GuerlandoOCs与运算符[]
?对这就是为什么您必须检查访问的索引是否小于容器的size()
.at()
在尝试访问不存在的对象时引发异常。另外:if(functionList[index]!=null)返回类型中的reference
与&
之间有什么区别?std::vector::reference
只是T&
的typedef
@antonigavrel-Ahem,否。@GuerlandoOCs与运算符[]()
?对这就是为什么您必须检查访问的索引是否小于容器的size()
.at()
在尝试访问不存在的对象时引发异常。如何获取值索引
?您是否检查它是否介于0
和functionList.size()
之间?您如何获取索引的值?您是否检查它是否介于0
和functionList.size()之间?
functionList[index].second = enable;