Что означает "vector <int>Solution :: primesum (int n)"? - PullRequest
1 голос
/ 17 апреля 2020

Будучи новичком в C ++, я сталкиваюсь с трудностью, чтобы понять эту вещь:

vector<int> Solution::primesum(int n)

Код:

 vector<int> Solution::primesum(int n){
        vector<bool> isprime(n+1);    
  for(int i=0;i<=n;i++)

         isprime[i]=1;
        isprime[0]=0;
        isprime[1]=0;
        for(int i=2;i*i<=n;i++){
            if(isprime[i]){
                for(int j=i*2;j<=n;j+=i)
                 isprime[j]=0;
            }
        }
        vector<int>ans(2);
        for(int i=2;i<=n/2;i++){
            if(isprime[i] && isprime[n-i]){
                ans[0]=i;
                ans[1]=n-i;
                return ans;
            }
        }
    }

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Где-то в вашем коде должен быть класс Solution, который имеет функцию-член primesum, принимающую целочисленный аргумент и возвращающую вектор целочисленного типа:

class Solution
{ 
   public:
   vector<int> primesum(int);
};

Только тогда вы можете определить его снаружи используя оператор разрешения области действия :::

vector<int> Solution::primesum(int n) 
{ // Definition }
0 голосов
/ 17 апреля 2020

Ну, решение означает класс с именем «Solution», представляющий пользовательский тип данных. И primesum (int n) является функцией-членом в определении класса с возвращаемым типом, в то время как вектор является типом данных, используемым в качестве расширенной версии int [] или char [] (или строки).

class Solution
{
public:
   vector<int> primesum(int) //just like int* primesum(int); amount to returning a array
   ...
};
Solution::vector<int> Solution::primesum(int n){
   ...
}

Если возможно, дайте нам более подробную информацию, чтобы мы могли понять и ответить на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...