我正在创建一个双倍向量,然后尝试将其添加到我定义的对象中。问题是,我的vector<double>正以某种方式被转换为vector<double, allocator<double>>。有人知道为什么吗?
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
double stringToDouble( const std::string& s )
{
std::istringstream i(s);
double x;
if (!(i >> x))
return 0;
return x;
}
int main() {
ifstream userDefine("userDefine.csv");
string token, line;
stringstream iss;
int count = 0;
vector<double> prices;
while ( getline(userDefine, line) )
{
iss << line;
while ( getline(iss, token, ',') )
{
double temp = stringToDouble(token);
prices.push_back(temp);
}
}
return 0;
}然后,当添加到我的对象时,我会得到以下错误:
没有调用
generatorTemplate::generatorTemplate(std::string&, std::vector<double, std::allocator<double> >&......的匹配函数
发布于 2013-03-17 10:58:28
std::vector<T>实际上是template < class T, class Alloc = allocator > class vector;。如您所见,它有一个带有默认值的分配器类型参数。你所观察到的一切是意料之中的。这没什么不好的。
https://stackoverflow.com/questions/15459971
复制相似问题