c++ array setsize用法
C++中的数组是一种用于存储相同数据类型的元素序列的数据结构。在C++中,我们可以使用`setsize()`函数来设置数组的大小。这个函数允许我们动态地调整数组的长度,以适应不同的需求。
`setsize()`函数是`std::vector`类的一个成员函数,它用于改变`std::vector`的大小。`std::vector`是C++中标准库提供的一种动态数组容器。
在使用`setsize()`函数之前,我们首先需要包含相应的头文件`<vector>`,并使用`using namespace std;`来简化程序中的代码。
下面是使用`setsize()`函数的一些使用示例:
```
#include <iostream>
#include <vector>
resize函数c++
using namespace std;
int main() {
    vector<int> myVector;
    // 使用setsize()函数设置初始大小为5
    size(5);
    // 输出vector的大小和容量
    cout << "Size: " << myVector.size() << endl;
    cout << "Capacity: " << myVector.capacity() << endl;
    // 使用setsize()函数增加vector的大小
    size(10);
    // 输出vector的大小和容量
    cout << "Size: " << myVector.size() << endl;
    cout << "Capacity: " << myVector.capacity() << endl;
    // 使用setsize()函数减小vector的大小
    size(3);
    // 输出vector的大小和容量
    cout << "Size: " << myVector.size() << endl;
    cout << "Capacity: " << myVector.capacity() << endl;
    return 0;
}
```
在上面的示例中,我们首先创建了一个空的`vector`对象`myVector`,然后使用`resize()`函数将其大小设置为5。`resize()`函数会将`vector`的大小更改为指定的大小,并在必要时调整其容量。在我们的例子中,`vector`的容量与大小之间的关系将在程序中输出。
接下来,我们使用`resize()`函数将`vector`的大小增加到10,并再次输出大小和容量。我们可以看到大小和容量都已经增加了。
最后,我们使用`resize()`函数将`vector`的大小减小到3,并输出最终的大小和容量。我们可以发现,调整大小后,`vector`的容量不会直接被减小到与大小相等,以避免频繁的重新分配内存操作。
`setsize()`函数不仅可以用于调整`vector`的大小,还可以用于初始化`vector`的元素。我们可以提供一个额外的参数来设置初始化的值。例如,下面是一个示例:
```
#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> myVector;
    // 使用setsize()函数设置大小为5,并初始化值为10
    size(5, 10);
    // 输出vector的大小和容量,并输出元素的值
    cout << "Size: " << myVector.size() << endl;
    cout << "Capacity: " << myVector.capacity() << endl;
    cout << "Elements: ";
    for (int i = 0; i < myVector.size(); i++) {
        cout << myVector[i] << " ";
    }
    cout << endl;
    return 0;
}
```
在上面的示例中,我们使用`resize()`函数将`vector`的大小设置为5,并初始化所有的元素值为10。然后,我们遍历`vector`并输出每个元素的值。
使用`setsize()`函数能够方便地调整`vector`的大小,并初始化其元素的值。它在处理动态大小的数组时非常有用,并且可以有效地节省内存。同时,它还提供了灵活性,可以根据实际需求动态调整数组的大小。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。