【发布时间】:2014-09-18 23:28:27
【问题描述】:
我是使用 Visual Studio Express 2012 的 windows 7 用户。使用的编译器是程序附带的编译器。我遇到的具体问题是此版本的 Visual Studio 的向量尚不支持 initializer_list。此外,我似乎在使用 initializer_list 类时遇到了问题。我不确定这是否是由于我自己的无能,但事实仍然是我不能使用 initializer_list 来向量。
但是,即使实现,我也希望具有与 intializer_list 相同的语法。但是,由于我写信给 SO 的主要原因是学习,所以这不是问题。我认为,如果可以为 std 类创建运算符,则可以为向量定义一个类似于 initializer_list 的运算符,所以问题是:
是否可以为 std 库类定义运算符,如果可以,我该怎么做?
我尝试的是创建一个创建长度为 1 的向量的示例:
#include<iostream> //Used for later debugging
#include<vector>
#include<string> // Used later
template<typename T>
std::vector<T> operator {} (T y){
std::vector<T> out;
out.push_back(y);
return out;
};
int main(){
std::vector<int> v = {1};
}
这根本不起作用。事实上,这甚至没有编译。一个工作示例将不胜感激,但操作员对向量执行任何操作的最小示例就足够了。我认为我的主要问题是为已经存在的类定义一个运算符是主要问题。
【问题讨论】:
标签: c++ initializer-list