Alexander
Hello
C++ newbie here.
What's the best way to achieve this with smart pointers?
struct Foo {
vector<int> numbers;
int* cur_number;
};
int main() {
Foo foo;
foo.numbers.push_back(1);
cout << foo.numbers[0] << endl; // 1
foo.cur_number = &foo.numbers[0];
*foo.cur_number = 2;
cout << foo.numbers[0] << endl; // 2
}
I want the cur_number field point to any value in the vector and to modify the original vector by modifying cur_number.
I tried unique_ptr, but the value was copied, and I could not modify the original array.
Perhaps shared_ptr? Thanks
Anonymous
#include <bits/stdc++.h>
using namespace std;
#define jeno_joyer_khuda_thake int main (void)
#define kaj_shesh return 0
#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define whilecase while (tc--)
#define sn sf ("%d",&n)
#define eof while (cin >> n)
#define pcase pf ("Case %d: ",pos)
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define for0(i,n) for (i=0; i<n; i++)
#define for1(i,n) for (i=1; i<=n; i++)
#define forab(i,a,b) for (i=a; i<=b; i++)
#define rof0(i,n) for (i=n-1; i>=0; i--)
#define rof1(i,n) for (i=n; i>=1; i--)
#define rofab(i,a,b) for (i=b; i>=a; i--)
#define c(str) cin >> str
#define g(str) getline (cin,str)
#define vi vector <int>
#define vlld vector <lld>
#define si set <int>
#define slld set <lld>
#define ss set <string>
#define vs vector <string>
#define pii pair <int,int>
#define mii map <int,int>
#define msi map <string,int>
#define pb push_back
#define in insert
#define B begin()
#define E end()
#define rB rbegin()
#define rE rend()
#define F first
#define S second
#define iterate(it,x) for (it=x.B; it!=x.E; it++)
#define sortR(x,a,b) sort (x.B+a,x.B+b+1)
#define rev(x) reverse (x.B,x.E)
#define revR(x,a,b) reverse (x.B+a,x.B+b+1)
#define cl(x) x.clear()
#define end1 "\n"
const int MOD = 1000000007;
const int MAX = 1000001;
const double PI = acos(-1.0);
int SetBit (int n, int X) { return n | (1 << X); }
int ClearBit (int n, int X) { return n & ~(1 << X); }
int ToggleBit (int n, int X) { return n ^ (1 << X); }
bool CheckBit (int n, int X) { return (bool)(n & (1 << X)); }
int arr[105];
jeno_joyer_khuda_thake
{
/***
freopen ("input.txt","r",stdin);
freopen ("output.txt","w",stdout);
***/
int n,i,j,ans,mini;
while (sf ("%d",&n) != EOF)
{
for (i=0; i<n; i++)
sf ("%d",&arr[i]);
ans = 1e9+7;
for (i=0; i<n; i++)
{
mini = 0;
for (j=0; j<n; j++)
if (abs(arr[i]-arr[j]) & 1)
++mini;
ans = min (ans,mini);
}
pf ("%d\n",ans);
}
Anonymous
kaj_shesh;
} 1. why so much define? 2.why these function int SetBit (int n, int X) { return n | (1 << X); }
int ClearBit (int n, int X) { return n & ~(1 << X); }
int ToggleBit (int n, int X) { return n ^ (1 << X); }
bool CheckBit (int n, int X) { return (bool)(n & (1 << X)); }
3. why first ans is declared 1e9+7