بدست آوردن موقعیت های یک عدد در وکتور - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

بدست آوردن موقعیت های یک عدد در وکتور

+1 امتیاز
سلام.

تو C++11 برای بدست آوردن موقعیت های یک عدد در یک وکتور به چه صورت عمل میشه به طور مثال یک vector دارید عدد 5 در این vector در 20 جای مختلف تکرار شده چطور بایستی این موقعت ها را بدست آورد؟
سوال شده اسفند 1, 1392  بوسیله ی shab (امتیاز 194)   8 22 30
دوباره تگ گذاری شد فروردین 20, 1393 بوسیله ی BlueBlade

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

چرا حالا تو c++11 شما به راحتی با یک حلقه for و یک if می تونید اینکارو انجام بدید گاهی اوقات استفاده از stl کد شما را ناخوانا می کنه.

به کد زیر دقت کنید :

#include <vector>
#include <iostream>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int main()
{
    vector<int> items(10);
	int value = 2;

    cout << "list:" << endl;
	for (auto &item :items)
	{
		item = rand() %4;
		cout << item << endl;
	}

	cout << "indexs non stl:" << endl;
	for (size_t i=0; i < items.size();i++)
		if (value == items[i])
			cout << i << endl;
	


	cout << "indexs stl:" << endl;
	
	vector<int>::iterator p ;
	for (auto it = items.begin();(p = std::find(it,items.end(),value))!= items.end();it = ++p)
		cout << std::distance(items.begin(),p) << endl;


	return 0;
]

 

پاسخ داده شده اسفند 1, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اسفند 1, 1392 بوسیله ی shab
...