64,682
社区成员
发帖
与我相关
我的任务
分享
vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"}; // v8 有10 个值为"hi"的元素
vector<string> v7{10}; // v7 有10 个默认初始化的元素
vector<string> v8{10, "hi"};
与下面两句是一样的
vector<string> v7(10); // v7 有10 个默认初始化的元素
vector<string> v8(10, "hi");
#5 提出的问题只有在 vector<int> 的时候才存在,对 vector<string> 不存在。
#include <initializer_list>
#include <iosteram>
class A{
public:
int a;
A(int) { std::cout<<"int constructor"<<std::endl;}
A(int, int) { std::cout<<"int, int constructor"<<std::endl; }
A(std::initializer_list<int>)
{
std::cout<<"initializer list"<<std::endl;
}
};
int main()
{
A a1{0};
A a2{0, 0};
A a3(0);
A a4(0, 0);
}
uniform initialization
http://en.wikipedia.org/wiki/C++11#Uniform_initialization[/quote]
+10086
#include <initializer_list>
#include <iosteram>
class A{
public:
int a;
A(int) { std::cout<<"int constructor"<<std::endl;}
A(int, int) { std::cout<<"int, int constructor"<<std::endl; }
A(std::initializer_list<int>)
{
std::cout<<"initializer list"<<std::endl;
}
};
int main()
{
A a1{0};
A a2{0, 0};
A a3(0);
A a4(0, 0);
}
uniform initialization
http://en.wikipedia.org/wiki/C++11#Uniform_initialization
default (1)
explicit vector (const allocator_type& alloc = allocator_type());
fill (2)
explicit vector (size_type n, const value_type& val = value_type(),
const allocator_type& alloc = allocator_type());
range (3)
template <class InputIterator>
vector (InputIterator first, InputIterator last,
const allocator_type& alloc = allocator_type());
copy (4)
vector (const vector& x);
C++11:
default (1)
explicit vector (const allocator_type& alloc = allocator_type());
fill (2)
explicit vector (size_type n);
vector (size_type n, const value_type& val,
const allocator_type& alloc = allocator_type());
range (3)
template <class InputIterator>
vector (InputIterator first, InputIterator last,
const allocator_type& alloc = allocator_type());
copy (4)
vector (const vector& x);
vector (const vector& x, const allocator_type& alloc);
move (5)
vector (vector&& x);
vector (vector&& x, const allocator_type& alloc);
initializer list (6)
vector (initializer_list<value_type> il,
const allocator_type& alloc = allocator_type());
所以是小括号