1、C++
DList_类构造函数
/// <summary>
/// 表表初始化 dList<int> idl = {1,2,3,4};
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="tList"></param>
template<class T>
inline dList_<T>::dList_(std::initializer_list<T> tList) {
initData();
for (T t : tList) { add(t); }
}
例子:
输出:
2、C++ CLI
csharp_DList 类构造函数
从列表初始化CLI容器
在C#中,从列表可以初始化为CLI容器:
但在C++/CLI中,花括号代表为native中的初始化列表,对应于std::initializer_list,这是一个native class, 如果没有定义 csharp_DList(... array<T>^ tArray),
在CLI中下面代码列表实始化无效
inline csharp_DList(std::initializer_list<T> tList) {
initData();
for (T t : tList){ Add(t); }
}
表列化就会出现错误,例如:
编译器会把 {L"中", L"华", L"人", L"民", L"共", L"和", L"国"} 转换为
std::initializer_list<T>
所以正确的构造函数是:
inline csharp_DList(... array<T>^ tArray) {
initData();
for each (T t in tArray) { Add(t); }
}
例子:
输出:
3、Java
DList_类构造函数
例子:
输出:
Java语法不支持:{"中", "华", "人", "民", "共", "和", "国"};
4. C#
相同类DList_<T>
例子:
输出: