公共成员函数
<valarray>

std::valarray::resize

void resize (size_t sz, T c = T());
调整 valarray 的大小
调整 valarray 的大小,将其 大小 更改为 sz 个元素,并将值 c 分配给每个元素。

调整大小后,以前的内容将丢失:valarray 将包含 sz 个元素,所有元素的值均为 c

valarray 元素的所有指针和引用均因调用而失效。

参数

sz
valarray 的大小,以元素数量表示。
size_t 是一个无符号整数类型。
c
要分配给调整大小后的数组的每个元素的值。
Tvalarray 的模板参数(值类型)。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// valarray::resize example
#include <iostream>     // std::cout
#include <cstddef>      // std::size_t
#include <valarray>     // std::valarray

int increment (int x) {return ++x;}

int main ()
{
  std::valarray<int> myarray (10,5);   // 10 10 10 10 10
  myarray.resize(3);                   // 0  0  0

  std::cout << "myvalarray contains:";
  for (std::size_t n=0; n<myarray.size(); n++)
	  std::cout << ' ' << myarray[n];
  std::cout << '\n';

  return 0;
}

输出

myvalarray contains: 0 0 0


复杂度

取决于库实现(操作可以并行化)。

迭代器有效性

使 valarray 的所有迭代器、引用和子数组失效。

数据竞争

valarray 及其所有元素均被修改。

异常安全

如果对元素执行的任何操作引发异常,则会导致未定义的行为
如果该函数需要分配存储空间但失败,则可能会引发异常(例如 bad_alloc),尽管这不是强制性的。

另见