2

私はc ++が初めてです。サイズ n のベクトルがあります。ベクター広告ストアで、新しいベクターの正と負の値を検索したいと考えています。正負の数がわかりません。

誰でも私を助けることができますか?

4

4 に答える 4

3

ソース ベクター内の項目を再配置できる場合は、次のようにするのがおそらく最も簡単です。

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());
于 2013-07-05T11:48:00.233 に答える
2

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が使用されているのは、元のベクトルをまったく変更する必要がないためです。値を読み取るだけです。

于 2013-07-05T11:41:42.940 に答える