当前位置:  开发笔记 > 编程语言 > 正文

检查数组索引是否存在

如何解决《检查数组索引是否存在》经验,为你挑选了1个好方法。

有没有办法检查数组的给定索引是否存在?我试图设置数字索引,但像1,5,6,10.所以我想看看这些索引是否已经存在,以及它们是否只是增加了另一个计数器.

我通常使用PHP但我试图在c ++中这样做,所以基本上我试图询问是否有一个isset()方式与c ++一起使用

PS:使用载体会更容易吗?如果是这样,有人能指点我一个好的矢量教程吗?谢谢



1> user23167..:

在C++中,数组的大小在声明时是固定的,虽然您可以在声明的数组大小的末尾访问,但这是非常危险的,并且是难以跟踪的错误的来源:

int i[10];
i[10] = 2; // Legal but very dangerous! Writing on memory you don't know about

看起来你想要类似于数组的行为,但是没有填充所有元素.传统上,这是哈希表的领域.向量在这里不是一个很好的解决方案,因为你会有空元素占用空间,更好的是像地图,你可以通过搜索它并解释结果来测试元素是否存在:

#include 
#include 

// Declare the map - integer keys, string values    
std::map a;

// Add an item at an arbitrary location
a[2] = std::string("A string");

// Find a key that isn't present
if(a.find(1) == a.end())
{
   // This code will be run in this example
   std::cout << "Not found" << std::endl;
}
else
{
   std::cout << "Found" << std::endl;
}

一句警告:使用上述方法查找是否存在密钥,而不是测试默认值

if(a[2] == 0)
{
    a[2] = myValueToPutIn;
}

因为地图的行为是在第一次访问该键值时插入默认的构造对象,如果当前没有任何内容.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有