double myArray[3] = {0.0};
myArray["SSN_1"] = 2.0;
myArray["SSN_2"] = 3.0;
myArray["SSN_3"] = 2.0;
for(... how? ...)
{
... Print ... but, how? ...
}
如果您有任何引用,请链接。
double myArray[3] = {0.0};
myArray["SSN_1"] = 2.0;
myArray["SSN_2"] = 3.0;
myArray["SSN_3"] = 2.0;
for(... how? ...)
{
... Print ... but, how? ...
}
如果您有任何引用,请链接。
不在c这是不可能的,只允许整数。
关联容器可以用一个简单的结构来建立像
struct double_map_item {
char *key;
double value;
};
看看bsearch()的手册页例如,对于一个简单的方法来找到通过自己的键值项。
当然,这是一个非常简单的可能的实现,您应该阅读有关哈希表的更完整和强大的实现。
关于this comment,在C字符常量的类型是int
等
array['x'] = value;
是有效的,但要注意,这是不是真的有用,因为
注意:以下your own comment,还有就是你看到的C++代码的机会。在C++中,可以重载[]
运算符,以便它将const char *
作为参数,然后使用散列表或任何其他方法为给定键找到匹配元素。
但是在c中,这是不可能的。
如果一个人实现在C++这样的容器,下面的例子说明如何进行,请注意,这只是对基本概念的说明,你应该使用std::map代替,
#include <iostream>
#include <map>
class Array {
public:
Array();
double operator[](const char *const key);
void insert(const char *const key, double value);
private:
std::map<const char *, double> m_items;
};
Array::Array()
{
}
double
Array::operator[](const char *const key)
{
return m_items[key];
}
void
Array::insert(const char *const key, double value)
{
m_items.insert(std::pair<const char *, double>(key, value));
}
int
main(void)
{
Array items;
items.insert("SSN_1", 2.0);
items.insert("SSN_2", 3.0);
items.insert("SSN_3", 2.0);
std::cout << items["SSN_1"] << std::endl;
return 0;
}
字符是一个整数类型,所以它们可以作为索引工作(虽然在大多数情况下不是非常有用)。 –
我想我看到了某处,可能是字符串搜索算法的实现。 – anonymous
但不是c,C++,因为你可以重载'[]'运算符。 –
不,它不是...... – OldProgrammer
随着4k代表,我会期待一个基本的搜索已成为您的第一个停靠港。 –