公共成員函式
<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),儘管這不是強制性的。

另見