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代表,我會期待一個基本的搜索已成爲您的第一個停靠港。 –