如果我的v = 4在a [n]中,我想向左移动数组值,从a [n]删除4,并在结尾索引处添加0,我该怎么做?

#include <iostream>

using namespace std;
const int n=5;
int main()
{

int a[n]={1,5,4,6,8}, v=4;
int b[n];

cout << "Enter a Value" << endl;
cout<<v<<endl;

for(int i=0; i<n; i++){
 cout<<a[i];
}
cout<<endl;
for(int j=0; j<n; j++){
    b[j]=a[j];
    if(a[j]==v)
    b[j]=a[++j];


  cout<<b[j];
  }


 return 0;
 }

最佳答案

#include <vector>       // needed for vector
#include <algorithm>    // needed for find
#include <iostream>     // needed for cout, cin

using namespace std;

// Vectors are just like dynamic arrays, you can resize vectors on the fly

vector<int> a { 1,5,4,6,8 };  // Prepare required vector
int v;

cout << "enter value";  // Read from user
cin >> v;

auto itr = find( a.begin(), a.end(), v);  // Search entire vector for 'v'
if( itr != a.end() ) // If value entered by user is found in vector
{
    a.erase(itr);    // Delete the element and shift everything after element
                     // Toward beginning of vector. This reduces vector size by 1
    a.push_back(0);  // Add 0 in the end. This increases vector size by 1
}

for( int i : a )     // Iterate through all element of a (i holds element)
    cout << i;       // Print i
cout << '\n';        // Line end


一些有用的链接:
vectorfinditeratorerasepush_back

关于c++ - 在C++中交换数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23757002/

10-11 05:07