【发布时间】:2020-01-27 07:31:53
【问题描述】:
我有一个简单的程序:
#include <array>
#include <iostream>
#include <functional>
#include <algorithm>
using namespace std;
int main(){
array<int, 5> myArr = {3, 10, 0, 5, 7};
int badNum = 0;
for(int item : myArr){
cout << item << endl;
}
cout << "\n" << endl;
cout << "\n" << endl;
sort(myArr.begin(), myArr.end(), greater<int>());
for(int item : myArr){
cout << item << endl;
}
array<int, 4> goodFour;
for (unsigned int i = 0; i < myArr.size(); i++){
if(myArr[i] != badNum){
// goodThree.append(myArr[i]); <-- This is where I am stuck
}
}
}
我一直在尝试将元素分配给std::array。我知道在std::vector 中我可以使用push_back 方法,但是在std:array 上,如何分配给下一个(尚未分配的)元素?我来自 Python 3.x,我们有 append 方法用于 list。我不是试图改变数组的大小,而是试图用值填充分配的空间。
我看过:
http://www.cplusplus.com/forum/beginner/67707/
http://www.cplusplus.com/forum/beginner/86394/
http://www.cplusplus.com/forum/beginner/152125/
但这些都是针对向量或原始int[5] myArr 类型,而不是std::array。
【问题讨论】:
-
这根本不是重复的,事实上,它特别提到了使用
std:array,而不是旧的int[x] myArr版本,并且特别提到了不使用向量。 @GAVD -
@JerryM。我已经根据我的回答改写了你的问题。如果我错过了重点,请随时回复。