哈哈,作为编程新手自学一下c++,发现一做题就得抓猴挠腮,
比如说vector 添加一个元素与set,map 很容易混用 ,vector定义一个数组
很有可能就会习惯性地和平常数组混用。
#include<iostream> #include<vector> using namespace std; int main() { int n; int s[10]; while (cin >> n) { for (int i = 0; i < n; i++) { cin >> s[i]; } for (int i = 0; i < n; i++) { cout << s[i] << ' '; } cout << '\n'; } return 0; }
#include<iostream> #include<vector> using namespace std; vector<int> s; int main() { int n; while (cin >> n) { for (int i = 0, a; i < n; i++) { cin >> a; s.push_back(a); } for (int i = 0; i < n; i++) { cout << s[i] << ' '; }
cout << '\n'; }return 0;
}
我当时看着这两个代码也没什么问题(大神别笑)
但是输出的答案不一样。。。。
s.push_back(a);
他只会永远向后面去添加元素当你完成2遍输出时,发现第二遍的输出复制了第一遍输入的值。。。
自学终究有欠缺不过幸好有度娘 才知道的 可以用s.clear();去重新用
不过有一点clear()只是push_back();的位置重新指在是一个并没有重置。
好了 牢骚已发 不喜勿喷 。