gpt4 book ai didi

c++ - vector::reserve 有什么问题?

转载 作者:行者123 更新时间:2023-11-28 01:19:06 27 4
gpt4 key购买 nike

<分区>

我只是想学习 STL 以进行竞争性编程,并坚持这个疑问!1. 当我使用 vector::reserve(n) 时,标记为 loop1 和 loop2 的循环不打印任何内容。2. 但是当我使用 vector::assign(n,0) 时,标记为循环 1 和循环 2 的循环工作正常。为什么会这样?

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
int test;
scanf("%d", &test);
while (test > 0) {
int n;
scanf("%d", &n);
vector<int> arr;

arr.reserve(n);
//arr.assign(n,0);

for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}

sort(arr.begin(), arr.end());

vector<int>::iterator itr;

// loop1
for (int x : arr) {
printf("%d ", x);
}

//loop2
for (itr = arr.begin(); itr != arr.end(); itr++) {
printf("%d ", *itr);
}

test--;
}

return 0;
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com