vectorC++中初始化100个元素都为0
时间: 2024-05-06 20:15:39 浏览: 147
有多种方法可以实现这个目标,以下是其中几种:
1. 使用循环初始化:
```
vector<int> vec(100);
for(int i = 0; i < 100; i++) {
vec[i] = 0;
}
```
2. 使用STL算法库中的函数初始化:
```
vector<int> vec(100);
fill(vec.begin(), vec.end(), 0);
```
3. 使用C++11中的新特性,使用初始化列表初始化:
```
vector<int> vec(100, 0);
```
以上三种方法都可以将vector中的100个元素初始化为0。其中第二种方法使用了STL算法库中的fill函数,该函数可将一个范围内的元素全部赋值为同一个值,因此使用起来比较方便。而第三种方法则利用了C++11的新特性,可以在vector的构造函数中直接指定元素的初始值。
相关问题
pta模板题vectorc++
### PTA C++ Vector 模板题使用方法
#### 定义与初始化Vector
`vector` 是 STL 中的一种动态数组容器,允许在运行时调整大小。创建 `vector` 的方式有多种:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 创建一个空的 int 类型 vector
vector<int> vec;
// 初始化含有特定数量元素的 vector
vector<int> vec_init(10, 0); // 含有十个整数,默认值为0
// 使用列表初始化器语法
vector<int> vec_list = {1, 2, 3};
}
```
#### 基本操作函数
对于 `vector` 的基本操作包括但不限于增加、访问以及删除元素。
- **添加元素**
```cpp
vec.push_back(4); // 添加到末尾
// 插入指定位置之前的新元素
vec.insert(vec.begin(), 5);
```
- **访问元素**
可以直接通过下标索引来获取或修改向量中的元素[^1]。
```cpp
cout << "First element: " << vec[0];
cout << "\nLast element: " << vec.back();
```
- **移除元素**
可以利用成员函数 `pop_back()` 来弹出最后一个元素;也可以用迭代器指向的位置作为参数调用 `erase()` 函数来删除单个元素或多组连续元素。
```cpp
if (!vec.empty()) {
vec.pop_back(); // 移除最后一位
}
auto it = find(vec.begin(), vec.end(), value_to_remove);
if (it != vec.end())
{
vec.erase(it); // 删除找到的第一个匹配项
}
```
#### 处理PTA题目实例——寻找数字之王
针对给定范围内的自然数序列统计其中各个位上出现频率最高的数字称为“数字之王”。下面给出一段基于上述知识点解决该类问题的具体实现方案[^2]:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(const pair<int,int>& a,const pair<int,int>& b){
if(a.second==b.second)return a.first<b.first;
return a.second>b.second;
}
void countMaxDigit(int start, int end) {
vector<pair<int, int>> digitCount(10);
for (int i = start; i <= end; ++i) {
string numStr = to_string(i);
for(char ch : numStr){
digitCount[ch-'0'].second++;
}
}
sort(digitCount.begin(),digitCount.end(),compare);
cout<<digitCount[0].second<<"\n";
bool isFirst=true;
for(auto& p:digits){
if(p.second!=digits[0].second)break;
if(!isFirst)cout<<" ";
isFirst=false;
cout<<p.first;
}
}
```
此段程序实现了对一定区间内所有正整数各位数字频次的计算,并找出最高频次的一个或多个数字作为结果输出。注意这里为了处理可能存在的多位相同最大值情况特别设计了一个比较规则用于排序前后的筛选过程.
c 二维vector初始化
在C++中,二维`std::vector`是一种可以动态调整大小的数组,它可以存储多个一维向量。初始化二维`vector`通常涉及到两层方括号。下面是一些常见的初始化方式:
1. **空初始化**:
```cpp
std::vector<std::vector<int>> matrix; // 创建一个空的二维vector
```
2. **预定义大小**:
```cpp
std::vector<std::vector<int>> matrix(3, std::vector<int>(4)); // 一个3x4的矩阵全为0
```
这里,第一个括号内的3表示行数,第二个括号内的4表示列数。
3. **填充值**:
```cpp
std::vector<std::vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 初始化为指定元素
```
这会创建一个3x3的矩阵,第一行是[1, 2, 3],依此类推。
4. **生成随机数据**:
```cpp
std::vector<std::vector<int>> matrix;
for (int i = 0; i < 3; ++i) {
matrix.push_back(std::vector<int>(4, rand() % 10)); // 随机整数填充
}
```
这里`rand()`用于生成随机数。
阅读全文