4 c++ vector stdvector c++-standard-library
在运行时,可以确定一个vector?的大小?
例如
输入:25 //显示矢量大小
code :
int N ;
cin << N ;
vector <int> data[N];
Run Code Online (Sandbox Code Playgroud)
Fil*_*efp 13
您可能感兴趣的两种方法:
std::vector<T>::size 将返回向量中的元素数.
std::vector<T>::capacity 将返回向量为其分配内存的元素数.
示例代码段
std::vector<int> v;
for (int i =0; i < 25; ++i)
v.push_back (i);
v.reserve (100);
std::cerr << "Elements: " << v.size () << std::endl;
std::cerr << "Capacity: " << v.capacity () << std::endl;
Run Code Online (Sandbox Code Playgroud)
产量
Elements: 25
Capacity: 100
Run Code Online (Sandbox Code Playgroud)
我猜测,在原岗位的例子段包含至少一个错字,你不声明std::vector<int>与N通过写下面的元素.
你写的是数据是一个vector<int>大小的数组,N如果N在编译时已知(或者你的编译器中存在可变长度数组扩展),它就会编译.
vector<int> data[N];
Run Code Online (Sandbox Code Playgroud)
要创建一个vector并使其N从一开始就插入元素:
std::vector<int> data (N);
Run Code Online (Sandbox Code Playgroud)
你正在vector以(可能)错误的方式使用...这样你就可以定义一个N向量的C风格数组(顺便说一下,这种语法不是标准的,因为N需要在编译时知道),而你可能想要定义一个vector包含N元素,这是这样做的:
vector<int> data(N);
Run Code Online (Sandbox Code Playgroud)
(调用单参数构造函数vector,构造一个默认初始化的数组N元素long)
要在运行时1获取其大小,您只需调用其方法size():
cout<<"The vector contains "<<data.size()<<" elements.\n"
Run Code Online (Sandbox Code Playgroud)
vector的大小(用作存储在其中的元素的数量)仅在运行时定义.