我想用C++編寫一些東西,儘管我有這個想法並且我試圖寫它,但是我不知道如何去做。根據屬性將矢量劃分爲更小的矢量
說明
想象一下,我有一個vector<int>
我們定義eveytime我們運行我們的程序。它的名字是mainVector
這個向量將有一個隨機的整數。每個int都有一個屬性。
例如,我們具有以下值的向量:vector<int> mainVector {1, 3, 15, 33, 35, 42, 57, 69, 73}
; 和我們有另一個vector<int>
在元素的位置,這說明在mainVector每個元素的屬性,稱爲properties
例如:vector<int> properties {1, 1, 1, 2, 2, 2, 3, 3, 3}
我現在想,是因爲許多較小的載體不同來劃分第一矢量屬性存在。例如,在最後一種情況下,我將有三個新的向量:具有屬性1的元素的向量:1, 3, 15
;矢量元素與屬性2:33, 35, 42
;以及具有屬性3的元素的矢量:57, 69, 73
。
問題是我不知道如何定義這個,導致每次執行我們的代碼時第一個矢量都可能不同。
這裏我重視你的代碼與我的想法:
do
{
for(int t=0;t<mainVector.size();t++) // id tables
{
string Vect("Vector");
Vect +=t;
vector<int> Vect
for(int u=0;u<mainVector.size();u++)
{
if(properties.at(u) & t)
{
Vect.push_back(mainVector.at(u)); // I know this is not correct but I hope you understand what I mean
}
}
}
}
在此先感謝大家! :)
澄清
重要的東西,我想澄清:mainVector
已經是已被定義多虧了開關輸入的另一大的向量的子向量。 bigVector <int>
是{1, 2, 3, 4, 5, 6, ...., 99, 100, 101, ..., n}
和vector <int> properties
是一個向量,實際上,它是一個大的向量,它可以在任何情況下有所不同,例如,在一次執行中,我可以是{1, 1, 1, 1, 1, 1, ..., 1, 1, 2, ... 2}
,另一個時刻{1, 1, 1, 1, 2, 2, ..., 26, 26, 27, 49}
,所以我認爲我不能做一個向量像一些你正在推薦的矢量,任何想法?
再次感謝!!!
感謝您的回答。我剛剛澄清了我的問題,因爲我認爲我不能用矢量>來推薦。看看並告訴我,如果你有任何想法如何做到這一點!謝謝:) –
thomas
2011-04-11 14:38:55
我仍然認爲矢量向量應該工作。你能否嘗試再次修改它......描述你想要對數據做什麼?你想用這個新的子向量「對象」來做什麼? – Jess 2011-04-11 15:22:26
我已經編輯上面的解決方案...不知道這是你在找什麼? – Jess 2011-04-11 16:31:50