小编Sha*_*810的帖子

将模板类作为参数传递

如何将模板化类传递给另一个类的构造函数?我试图将模板化的哈希表类传递给菜单类,这将允许我允许用户决定哈希表的类型.

template <class T>
class OpenHash 
{
private: 
    vector <T> hashTab;
    vector <int> emptyCheck;
    int hashF(string);
    int hashF(int);
    int hashF(double);
    int hashF(float);
    int hashF(char); 

public:
    OpenHash(int);
    int getVectorCap();
    int addRecord (T);
    int sizeHash();
    int find(T);
    int printHash();
    int deleteEntry(T);
};

template <class T>
OpenHash<T>::OpenHash(int vecSize)
{
    hashTab.clear();
    hashTab.resize(vecSize);
    emptyCheck.resize(vecSize);
    for (int i=0; i < emptyCheck.capacity(); i++)   
    {
        emptyCheck.at(i) = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我有这个模板的Open哈希是模板化的,因为它应该允许添加任何类型,如果在我的main中启动它的对象并更改输入类型等我有这个工作.

int main () 
{
   cout << "Please input the size of your HashTable" << endl;
   int vecSize …
Run Code Online (Sandbox Code Playgroud)

c++ parameters templates constructor class

10
推荐指数
1
解决办法
2万
查看次数

C ++使用atof将字符串转换为双精度

我无法使用该atof()功能。我只希望用户输入值(以十进制数字的形式),直到他们输入'|',然后打破循环。我希望这些值最初以字符串形式读取,然后转换为双精度,因为我在过去使用此输入法时发现过,如果输入数字“ 124”,则会中断循环,因为“ 124”是“ |”的代码 字符

我四处张望,发现了atof()strings 转换为doubles 的函数,但是当我尝试转换时,得到消息

“不存在从std :: string到const char的合适转换函数”。

我似乎无法弄清楚为什么会这样。

void distance_vector(){

double total = 0.0;
double mean = 0.0;
string input = " ";
double conversion = 0.0;
vector <double> a;

while (cin >> input && input.compare("|") != 0 ){
conversion = atof(input);
a.push_back(conversion);
}

keep_window_open();
}
Run Code Online (Sandbox Code Playgroud)

c++ string double atof

1
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

atof ×1

class ×1

constructor ×1

double ×1

parameters ×1

string ×1

templates ×1