私はc ++が初めてです。サイズ n のベクトルがあります。ベクター広告ストアで、新しいベクターの正と負の値を検索したいと考えています。正負の数がわかりません。
誰でも私を助けることができますか?
ソース ベクター内の項目を再配置できる場合は、次のようにするのがおそらく最も簡単です。
auto part = std::partition(input.begin(), input.end(), [](int p) { return p < 0; });
std::vector<int> neg(input.begin(), part);
std::vector<int> pos(part, input.end());
v
あなたのstd::vector<int>
ベクトルであり、正であると仮定すると、ベクトル0
をループして正の数を1つのベクトルに格納し、負の数を別のベクトルに格納するだけです:
using std::vector;
vector<int> pos, neg;
for (vector<int>::const_iterator it = v.cbegin(); it != v.cend(); it++) {
if ((*it) >= 0) pos.push_back((*it));
else neg.push_back((*it));
}
ここでAstd::vector<int>::const_iterator
が使用されているのは、元のベクトルをまったく変更する必要がないためです。値を読み取るだけです。